2017-09-06 5 views
0

J'ai une page d'archive de type post personnalisée dans laquelle je voudrais exécuter un script spécifique pour la page. Le script est chargé dans la page avec cette fonction (en function.php):Problèmes liés à l'exécution du script dans la page d'archives de type de post personnalisé

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'); 

Comme je peux voir avec l'inspecteur de page, la page charge le script, mais le script chargé n'est pas exécuté (le même travail de script fe si chargé dans une page de catégorie).

Avez-vous une suggestion pour résoudre ce problème? Merci!

Si vous pouvez aider, voici le script chargé (c'est un script vraiment simple qui ouvre le contenu de l'article si le titre est cliqué).

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(); 
}); 

}); 
+0

vous utilisez le thème de l'enfant? –

+0

oui, le site utilise genesis comme framework et exemple de thème enfant – simba

Répondre

0

Essayez avec le code ci-dessous, cela doit fonctionner sur chaque page.

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

Merci, mais ça ne marche toujours pas, vous avez changé le nom du script et supprimé la version, non? Ou quelque chose me manque? – simba

+0

sans condition si cela fonctionne? –

+0

Malheureusement, cette image n'est pas pour les archives personnalisées, mais si la condition ne fonctionne que pour les archives ou posts de la catégorie ... – simba

0

Voici le code complet:

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) { 
 

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

 
} 
 

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

 
//* 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'); 
 
\t function margine_sx_un_terzo (array $attributes) { 
 
\t \t $attributes['class'] .= ' hide'; 
 

 
\t \t return $attributes; 
 
\t } 
 

 
genesis();