WordPress : Customizer Add Section argument ‘active_callback’ => « is_front_page » ne fonctionne pas
Je travaille sur la configuration du personnalisateur pour mon thème. J’ai toutes les sections et tous les contrôles dont j’ai besoin, mais maintenant j’essaie de faire en sorte que certains d’entre eux ne s’affichent que sur certaines pages.
Mon premier arrêt concerne les sections qui ne concernent que la page d’accueil. J’ai lu ici que je peux ajouter un argument appelé « active_callback » à l’objet arguments et lui transmettre une fonction de vérification telle que is_front_page
ou is_home
.
Cela semblait facile, jusqu’à ce que je l’essaye et que cela ne fonctionne pas. J’ai essayé tout ce à quoi je pouvais penser (c’est ma première incursion dans WordPress), alors maintenant je viens vers vous en espérant que vous pourrez répondre à ma question
Je personnalise le personnalisateur functions.php
comme tel:
add_action( 'customize_register', 'ablogs_theme_customizer' );
function ablogs_theme_customizer($wp_customize) {
$wp_customize->add_section( 'home-page-slider-settings', array(
'title' => "Slider Settings",
'priority' => 0,
'active_callback' => 'is_front_page'
));
}
Si je supprime l’argument de rappel actif, il s’affiche très bien, mais sur chaque page lors de la personnalisation. J’ai vraiment besoin que cela n’apparaisse que sur la page d’accueil. Je n’utilise pas de page d’accueil statique. J’exécute un front-page.php
fichier personnalisé qui fait office de page d’accueil, donc je suppose que cela devrait compter à la fois front-page
et home
lors de la vérification de ces valeurs, que j’ai essayées toutes les deux.
Quelqu’un peut-il m’aider ici
Solution n°1 trouvée
Remplacez votre code par ce code : POUR PLUS D’INFOS
add_action( 'customize_register', 'ablogs_theme_customizer' );
function ablogs_theme_customizer($wp_customize) {
$wp_customize->add_section( 'home-page-slider-settings', array(
'title' => "Slider Settings",
'priority' => 0,
'active_callback' => 'callback_single'
));
}
function callback_single() { return is_home(); }
REMARQUE : Essayez simplement. le code n’est pas testé. j’espère que ça marche.
Solution n°2 trouvée
Le problème était que j’avais plusieurs boucles qui avaient chacune des requêtes différentes sur la première page. Après avoir pris soin de les réinitialiser à chaque fois, ce problème s’est résolu de lui-même.
Par exemple, ma nouvelle requête et boucle ressemble à ceci :
query_posts( array(
'category_name'=>"Cloud, Customer Engagement, Developers, Executive Thought Leadership, Networking, Services, Solutions, Team Engagement",
'showposts'=>8,
'order'=>DESC
));
// Start the loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
echo '<div class="post-card-wrap">';
// Get the card
get_category_post_card($post);
echo '</div>';
// End the loop
endwhile; endif;
// Reset the query
wp_reset_query();
Solution n°3 trouvée
Remplacez votre code par ce code : POUR PLUS D’INFOS
add_action( 'customize_register', 'ablogs_theme_customizer' );
function ablogs_theme_customizer($wp_customize) {
$wp_customize->add_section( 'home-page-slider-settings', array(
'title' => "Slider Settings",
'priority' => 0,
'active_callback' => 'callback_single'
));
}
function callback_single() { return is_home(); }
REMARQUE : Essayez simplement. le code n’est pas testé. j’espère que ça marche.
Solution n°4 trouvée
Le problème était que j’avais plusieurs boucles qui avaient chacune des requêtes différentes sur la première page. Après avoir pris soin de les réinitialiser à chaque fois, ce problème s’est résolu de lui-même.
Par exemple, ma nouvelle requête et boucle ressemble à ceci :
query_posts( array(
'category_name'=>"Cloud, Customer Engagement, Developers, Executive Thought Leadership, Networking, Services, Solutions, Team Engagement",
'showposts'=>8,
'order'=>DESC
));
// Start the loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
echo '<div class="post-card-wrap">';
// Get the card
get_category_post_card($post);
echo '</div>';
// End the loop
endwhile; endif;
// Reset the query
wp_reset_query();
0 commentaire