2010-09-07 14 views
0
$this->add_meta_box('select_post_template', __('Post Template', 'custom-post-templates'), 'select_post_template', 'post', 'side', 'default'); 

Pour qu'un plugin fonctionne avec des types de publications personnalisés, il m'a été demandé de remplacer "post" par le nom du type de message personnalisé. Est-ce que quelqu'un sait si je peux le faire fonctionner avec tous les types de messages personnalisés (en incluant les messages réguliers) en changeant cette ligne en quelque sorte?Comment inclure tous les types de messages personnalisés au lieu de seulement les messages

Pour votre information, je trouve cela à: http://wordpress.org/support/topic/custom-post-templates-with-custom-post-types-in-wp-30?replies=5#post-1679398

Et il est en référence au plug-in modèle post personnalisé: http://wordpress.org/extend/plugins/custom-post-template/

Merci à l'avance!

EDIT:

J'ai essayé:

$post_types = get_post_types(array("public" => true)); 
foreach ($post_types as $post_type) { 
    $this->add_meta_box("select_post_template", __("Post Template", "custom-post-templates"), "select_post_template", $post_type, "side", "default"); 
} 

Mais les types de poste personnalisé encore ne reçoivent pas le menu de sélection de modèle. Les messages le font, tout comme ils l'ont fait avec le code original. Merci pour suggestion ... quelqu'un en at-il un autre?

Note: Conceptuellement, l'approche est solide. Si je crée mon propre tableau avec une liste de mes types de messages personnalisés, ce code leur ajoute le modèle.

Répondre

1

Vous pouvez passer en revue tous les types de messages enregistrés et ajouter la méta-box pour chacun d'eux, bien que vous deviez filtrer certains types car les pièces jointes sont également des publications.

$post_types = get_post_types(array("public" => true)); 
foreach ($post_types as $post_type) { 
    add_meta_box("select_post_template", __("Post Template", "custom-post-templates"), "select_post_template", $post_type, "side", "default"); 
} 

En ce qui concerne spécifiquement au plugin Template Poster sur mesure, je pense que le problème est que vos types de postes personnalisés sont enregistrés après sa initialisés (car il n'utilise pas un crochet). Donc, $post_types (ci-dessus) ne contient pas vos types et les méta-boîtes ne peuvent pas être ajoutées pour eux. Vous pouvez essayer d'ajouter ce hack (à la fin de custom-post-templates.php):

add_action('init', 'hack_add_meta_boxes'); 
function hack_add_meta_boxes() { 
    global $CustomPostTemplates; 
    $post_types = get_post_types(array('public' => true)); 
    foreach ($post_types as $post_type) { 
    $CustomPostTemplates->add_meta_box('select_post_template', __('Post Template', 'custom-post-templates'), 'select_post_template', $post_type, 'side', 'default'); 
    } 
} 
+0

Merci d'avoir essayé, mais il n'a pas augmenté les types de poste personnalisé :( – Matrym

+0

Je pense que votre problème est probablement que vos types de postes personnalisés sont étant enregistré après l'initialisation du plugin Custom Post Template (car il n'utilise pas de hook), donc $ post_types ne contient pas vos types de post et les meta boxes ne sont pas ajoutées pour eux. –