J'essaie de masquer ou d'afficher les paramètres de personnalisation en fonction de la page affichée, similaire à active_callback' => 'is_front_page'
. Toutefois, je n'ai pas trouvé le moyen d'accéder à l'ID de la page actuelle à partir de mon fichier customizer.php
. Je souhaite pouvoir utiliser active_callback' => 'is_specific_page'
via un rappel personnalisé basé sur l'ID de la page actuelle, comme suit:
function is_specific_page () { // LA LOGIQUE REVIENT VRAIE OR FAUX EN FONCTION DE LA PAGE ACTUELLE }
J'ai essayé d'utiliser tout ce qui suit en vain:
global $post; $post->ID();
global $wp_query; $post_id = $wp_query->post->ID;
get_the_ID();
Merci d'avance pour votre aide!
Merci pour votre question.
active_callback
est exactement ce que vous recherchez. Vous pouvez l'utiliser avec les contrôles:
$wp_customizer->add_control(
'setting_name',
array(
'type' => 'text',
'section' => 'section_name',
'label' => 'Option with context',
'active_callback' => 'is_front_page'
)
);
et avec des sections:
$wp_customize->add_section(
'section-name',
array(
'title' => 'Section with context',
'active_callback' => 'is_front_page'
)
);
Dans les exemples ci-dessus, ce nouveau paramètre/cette section ne sera visible que pour la page d'accueil, grâce à la fonction native is_front_page
. Vous pouvez également utiliser d'autres Balises conditionnelles.
Mais bien sûr, vous pouvez créer vos propres contextes:
function mytheme_is_contact_page() {
return is_page_template( 'template-contact.php' );
}
function mytheme_is_page_id_123() {
return is_page( 123 );
}