web-dev-qa-db-fra.com

boîte méta personnalisée pour le modèle de page par défaut

Je ne parviens pas à afficher des méta-boîtes personnalisées sur le modèle de page par défaut. Je souhaite que ces méta-boîtes ne s'affichent que sur le modèle par défaut et disparaissent lorsque l'utilisateur choisit un autre modèle de page. Ci-dessous le code que j'ai essayé.

add_action( 'add_meta_boxes', 'add_page_meta' );

function add_page_meta() {

    global $post;

    if(!empty($post)) {

        $pageTemplate = get_post_meta($post->ID, '_wp_page_template', true);

        if( $pageTemplate == 'page-templates/page.php') {
            add_meta_box('banner-attributes', 'Banner Attributes', 'banner_attributes_callback', 'page', 'side');
            echo("<script>console.log('true');</script>");
        }
    }
}

J'ai aussi remarqué qu'en changeant la condition if de 'page-templates/page.php' à 'page-templates/page-notitle.php', la fonction fonctionnerait comme prévu. J'ai à la fois un page.php et un page-notitle.php dans mon dossier page-templates. Dois-je référencer le modèle par défaut avec autre chose que page.php?

Merci!

1
lblankenship

Peut-être que votre problème vient du fait que page.php est un nom de modèle réservé pour le fichier de modèle par défaut qui doit être situé dans le répertoire racine de votre thème et non dans un sous-répertoire tel que page-templates/page.php.

Vous pouvez vérifier le schéma de hiérarchie des modèles ici: https://codex.wordpress.org/images/c/ca/Template_Hierarchy_2015.png

0
Friss