在自定义 post 类型存档页面中执行脚本时出现问题

Troubles with executing script in custom post type archive page

我有一个自定义 post 类型的存档页面,我想在其中为该页面执行特定的脚本。使用此函数(在 function.php 中)将脚本加载到页面中:

function cpt_archive_enqueue_script() {
 if (is_post_type_archive('cpt-slug')) {
  wp_enqueue_script( 'cpt-archive-script', get_stylesheet_directory_uri() . '/js/cpt-archive-script.js', array( 'jquery' ), '1.0.0', true );
  };
}

add_action ('wp_enqueue_scripts', 'cpt_archive_enqueue_script'); 

正如我在页面检查器中看到的那样,页面加载了脚本但未执行加载的脚本(相同的脚本工作 f.e。如果在类别页面中加载)。

有人建议解决这个问题吗?谢谢!

如果这里可以提供帮助,请参阅加载的脚本(这是一个非常简单的脚本,如果单击标题,它会打开文章内容)。

jQuery(document).ready(function($) {

 $('article.post').each(function() {
   var $dropdown = $(this);

   $("div.entry-title", $dropdown).click(function(e) {
     e.preventDefault();
     $div = $("div.entry-content", $dropdown);
     $div.toggle();
     $("div.entry-content").not($div).hide();
     return false;
   });

});

 $('html').click(function(){
   $("div.entry-content").hide();
 });

});

尝试使用以下代码,它必须在每个页面上都有效。

add_action('wp_head','callfunctioneverywhere');
function callfunctioneverywhere()
{
  echo '<script defer src="'.get_stylesheet_directory_uri() .'/js/cpt-archive-script.js" ></script>';
}

完整代码如下:

jQuery(document).ready(function($) {

  $('article.post').each(function() {
    var $dropdown = $(this);

    $("div.entry-title", $dropdown).click(function(e) {
      e.preventDefault();
      $div = $("div.entry-content", $dropdown);
      $div.toggle("blind", 300);
      $("div.entry-content").not($div).hide("blind", { direction: "up" }, "300");
      return false;
    });

});

  $('html').click(function(){
    $("div.entry-content").hide("blind", { direction: "up" }, "300");
  });

});
.hide {display: none;}
<?php

//* add custom classes 
add_filter( 'body_class', 'journal' );
function journal ( $classes ) {

 $classes[] = 'journal';
 return $classes;

}

//* Remove the link from each post title
 add_filter( 'genesis_post_title_output', 'elimina_link_titolo', 15 );
  function elimina_link_titolo( $title ) {
         $title = sprintf( '<div class="entry-title five-sixth mostra">%s</div> ', apply_filters( 'genesis_post_title_text', get_the_title() ) );
   return $title;
  }

//* Add the 'hide' class ( .hide {display: none;} )to not show the content that will appear by clicking on title
add_filter ('genesis_attr_entry-content', '\margine_sx_un_terzo');
 function margine_sx_un_terzo ( array $attributes ) {
  $attributes['class'] .= ' hide';

  return $attributes;
 }

genesis();