web-dev-qa-db-fra.com

Comment obtenir l'ID de la page actuelle dans le fichier de personnalisation Wordpress?

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!

1
Alex E.

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 );
}
1
Krzysiek Dróżdż