WordPress et Meta Box

2 Commentaires

Nous allons voir comment afficher un meta box pour un template précis, mais pas pour toutes les pages par exemple, seulement les pages qui ont comme template ‘page_custom’. Souvent on ajoute des meta box pour les pages, posts et custom post type  et des fois on ne veut pas avoir ces meta box pour certaines pages. Pour faire cela dans le fichier où vous ajoutez des meta_box  souvent le fichier  ‘functions.php’  vous pouvez faire comme suit :

add_action('admin_init','exemple_meta_init');
function exemple_meta_init()
{
    $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
    $template_file = get_post_meta($post_id, '_wp_page_template', true);
    $type = "page";
    if ($template_file == 'page_custom.php') {
     add_meta_box('header_meta_page', __('Header Page'), 'page_header_meta_setup', $type, 'normal', 'high');
     add_action('save_post','page_meta_save');
    }
}

Comme vous remarquez, on récupère le post_id, ensuite on cherche le template depuis ce post_id et si ce que nous avons trouvé correspond à ce qu’on veut, on ajoute le meta_box ‘header_meta_page’.  Bien sûr vous devriez  avoir les fonctions

  • page_header_meta_setup (pour mettre des post_meta)
  • page_meta_save (pour enregistrer les données dans la base)

Ce que nous avons vu, nous permet d’optimiser notre affichage et faire faciliter l’insertion de contenu aux utilisateurs

  • Bonjour,
    Je viens de découvrir votre blog via le journal du net et votre sondage « Vous préférez réaliser votre blog avec? ».
    Ce blog parle de programmation, chose qui est fort intéressante mais difficilement accessible aussi quand on est pas de la partie…
    Faites vous un des articles concernant le SEO d’un site sous WordPress?
    Stéphane

    • admin

      Bonjour,

      Je suis intéressé par toute chose qui concerne WordPress. Ces jours, je n’ai pas eu le temps suffisant pour publier d’autres article qui sont encore en brouillon. Si vous avez des propositions je suis preneur.