Создание выпадающего списка с пользовательскими типами записей в админке

15 дек. 2011 г., 15:31:10
Просмотры: 29.3K
Голосов: 5

Мне нужно создать выпадающий список с "записями из пользовательского типа записей" в качестве опций.

Этот выпадающий список будет размещен как пользовательский метабокс.

Например, я хочу, чтобы все записи с пользовательским типом "Video" были представлены как опции в списке.

<select>
   <option>заголовок записи №1<option>
   <option>заголовок записи №2<option>
   ....
</select>

Спасибо

1
Комментарии

Где вы хотите разместить этот метабокс? То есть, на какой странице?

Rutwick Gangurde Rutwick Gangurde
16 дек. 2011 г. 07:20:27
Все ответы на вопрос 4
3
wp_dropdown_pages(array('post_type'=>'video'));

Смотрите: http://codex.wordpress.org/Function_Reference/wp_dropdown_pages

6 янв. 2012 г. 10:24:04
Комментарии

Не всегда работает, согласно предоставленной ссылке.

random_user_name random_user_name
20 мар. 2015 г. 15:36:47

Работает только для иерархических типов записей

Leo Germani Leo Germani
17 янв. 2019 г. 15:48:50

Как отобразить опцию выбора ВСЕХ типов записей в этом выпадающем списке?

Juraj Juraj
4 апр. 2021 г. 12:38:23
0

Вот код, который я использую в своем текущем проекте.

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 = "" >Все '.$label.' </option>';
        foreach ($posts as $post) {
            echo '<option value="', $post->ID, '"', $selected == $post->ID ? ' selected="selected"' : '', '>', $post->post_title, '</option>';
        }
        echo '</select>';
    }

$select_id используется как name и id для select элемента, $post_type - это тип записей, которые нужно преобразовать в выпадающий список, а $selected - это ID записи, которая должна быть выбрана по умолчанию в списке.

16 дек. 2011 г. 08:47:59
1

Если вы уже знаете, как создать пользовательский метабокс, вы можете использовать:

wp_dropdown_categories();

Например, так:

wp_dropdown_categories('taxonomy=your_texonomy&hide_empty=0&orderby=name&name=types&show_option_none=Выберите тип');
16 дек. 2011 г. 07:12:30
Комментарии

wp_dropdown_categories отображает категории, а не типы записей, о которых спрашивала @Steffi.

Manny Fleurmond Manny Fleurmond
16 дек. 2011 г. 08:26:00
0

Поскольку мой предыдущий ответ был воспринят скорее как вопрос, я отвечу более развернуто. Вы можете использовать плагин Magic Fields 2 (обратите внимание на цифру 2, так как это другой, но улучшенный плагин). В административной панели среди предлагаемых типов полей можно выбрать поле типа "related type". Конечно, вы всегда можете изучить, как это реализовано в данном плагине, если хотите создать подобную функцию самостоятельно, но по крайней мере уже есть кто-то, кто разобрался с этим.

13 дек. 2013 г. 17:45:06