Crie um menu suspenso com Tipos de postagem personalizados como opção no admin

4

Eu preciso criar um menu suspenso com " postagens de um tipo de postagem personalizado" como opção.

Esta lista suspensa será colocada como meta box personalizada.

Por exemplo, quero todas as postagens com o tipo personalizado "Vídeo" como opção na seleção.

<select>
   <option>post title n°1<option>
   <option>post title n°2<option>
   ....
</select>

Obrigado

    
por Steffi 15.12.2011 / 14:31

5 respostas

3

Aqui está o código que estou usando em um projeto em que estou trabalhando.

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 é usado como o nome e id da seleção, $post_type é o tipo que você deseja transformar na seleção e $selected é o ID da postagem que você deseja selecionar na caixa de seleção.

    
por Manny Fleurmond 16.12.2011 / 07:47
6
wp_dropdown_pages(array('post_type'=>'video'));

Veja: enlace

    
por skeg64 06.01.2012 / 09:24
1

Se você já souber como criar a caixa meta personalizada, poderá usar

  wp_dropdown_categories(); 

talvez assim:

wp_dropdown_categories('taxonomy=your_texonomy&hide_empty=0&orderby=name&name=types&show_option_none=Select type);
    
por krembo99 16.12.2011 / 06:12
0

Desde que minha última resposta foi considerada mais uma pergunta. Eu responderei com mais de uma resposta. Você poderia usar o plugin Magic Fields 2 (note o 2 porque esse é um plugin diferente, mas melhorado). Você pode escolher um campo "tipo relacionado" nas caixas de administração que eles oferecem. É claro que você ainda pode escavar como isso é feito neste plugin se você quiser criar essa função sozinho, mas pelo menos há alguém que descobriu isso.

    
por Sjoerd 13.12.2013 / 16:45
-1

É importante que seu tipo de postagem personalizada seja hierárquico, conforme declarado em enlace ou que não funcione.

add_action('restrict_manage_posts', function () {

    $args = [
        'post_type' => 'your_custom_post_type',
    ];

    wp_dropdown_pages($args);

});
    
por Nejch 13.12.2017 / 10:01