J'ai besoin de créer un menu déroulant avec " posts à partir d'un type de post personnalisé" en tant qu'option.
Cette liste déroulante sera placée en tant que méta-boîte personnalisée.
Par exemple, je veux toutes les publications avec le type personnalisé "Vidéo" comme option dans la sélection.
<select>
<option>post title n°1<option>
<option>post title n°2<option>
....
</select>
Merci
Voici le code que j'utilise dans un projet sur lequel je travaille.
function generate_post_select($select_id, $post_type, $selected = 0) {
$post_type_object = get_post_type_object($post_type);
$label = $post_type_object->label;
$posts = get_posts(array('post_type'=> $post_type, 'post_status'=> 'publish', 'suppress_filters' => false, 'posts_per_page'=>-1));
echo '<select name="'. $select_id .'" id="'.$select_id.'">';
echo '<option value = "" >All '.$label.' </option>';
foreach ($posts as $post) {
echo '<option value="', $post->ID, '"', $selected == $post->ID ? ' selected="selected"' : '', '>', $post->post_title, '</option>';
}
echo '</select>';
}
$select_id
est utilisé en tant que nom et id de la sélection, $post_type
est le type que vous souhaitez définir dans la sélection et $selected
est l'identifiant de publication que vous souhaitez sélectionner dans la zone de sélection.
wp_dropdown_pages(array('post_type'=>'video'));
Voir: http://codex.wordpress.org/Function_Reference/wp_dropdown_pages
Si vous savez déjà comment créer la méta-boîte personnalisée, vous pouvez utiliser
wp_dropdown_categories();
peut-être comme ça:
wp_dropdown_categories('taxonomy=your_texonomy&hide_empty=0&orderby=name&name=types&show_option_none=Select type);
Depuis ma dernière réponse a été considérée plus d'une question. Je vais répondre avec plus d'une réponse. Vous pouvez utiliser le plugin Magic Fields 2 (notez le 2 car il s’agit d’un plugin différent mais amélioré). Vous pouvez choisir un champ "type associé" dans les boîtes d’administrateur qu’ils offrent. Bien sûr, vous pouvez toujours expliquer comment cela fonctionne dans ce plugin si vous voulez créer cette fonction vous-même, mais au moins, il y a quelqu'un qui l'a compris.