Как создать рекомендуемую запись в пользовательском типе записи?
Делается ли это точно так же, как с обычными записями? Я использую глобальную переменную $featured_cat и получаю из нее данные. Следует ли делать так же и здесь?
Или стоит использовать связанную пользовательскую таксономию? Возможно, я усложняю? Будет ли реальная польза от таксономий?
Какой правильный подход в этом случае?

Регистрация типа записи "Видео" и "Таксономии Избранное" "Пользовательского мета-поля с выпадающим списком для избранного"
Тип записи:
function c3m_reg_vid_post() {
$labels = array(
'name' => _x('Видео', 'общее название типа записи'),
'singular_name' => _x('Видео', 'название типа записи в единственном числе'),
'add_new' => _x('Добавить новое', 'видео'),
'add_new_item' => __('Добавить новое видео'),
'edit_item' => __('Редактировать видео'),
'new_item' => __('Новое видео'),
'view_item' => __('Просмотреть видео'),
'search_items' => __('Искать видео'),
'not_found' => __('Видео не найдены'),
'not_found_in_trash' => __('В корзине видео не найдены'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'rewrite' => array('slug' => 'video', 'with_front' => false),
'capability_type' => 'post',
'register_meta_box_cb' => 'c3m_video_meta', //Это для нашего пользовательского метабокса
'hierarchical' => false,
'menu_position' => 10,
'taxonomies' => array('featured'),
'supports' => array('title', 'editor' 'custom-fields')
);
register_post_type('video', $args );
}
###Таксономия
Подумав еще раз, давайте использовать пользовательское поле для избранных видео и создадим выпадающий список в метабоксе для выбора, является ли запись избранной.
Настройка пользовательского метабокса:
//хук для добавления метабокса
add_action( 'add_meta_boxes', 'c3m_video_meta' );
function c3m_video_meta() {
//создаем пользовательский метабокс
add_meta_box( 'c3m-meta', 'Выбор избранного видео', 'c3m_mbe_function', 'video', 'normal', 'high' );
}
function c3m_mbe_function( $post ) {
//получаем значения метаданных, если они существуют
$c3m_mbe_featured = get_post_meta( $post->ID, '_c3m_mbe_featured', true );
echo 'Выберите "Да" ниже, чтобы сделать видео избранным';
?>
<p>Избранное:
<select name="c3m_mbe_featured">
<option value="No" <?php selected( $c3m_mbe_featured, 'no' ); ?>>Нет</option>
<option value="Yes" <?php selected( $c3m_mbe_featured, 'yes' ); ?>>Да, сделать видео избранным</option>
</select>
</p>
<?php
}
//хук для сохранения данных метабокса
add_action( 'save_post', 'c3m_mbe_save_meta' );
function c3m_mbe_save_meta( $post_ID ) {
global $post;
if( $post->post_type == "video" ) {
if ( isset( $_POST ) ) {
update_post_meta( $post_ID, '_c3m_mbe_featured', strip_tags( $_POST['c3m_mbe_featured'] ) );
}
}
}
}
Вот наш крутой маленький селектор избранных видео, который мы только что создали:
Теперь давайте запросим видео, которые помечены как избранные:
$args = array(
'post_type' => 'video',
'meta_query' => array(
array(
'key' => 'c3m_mbe_featured',
'value' => 'yes',
'compare' => 'NOT LIKE'
)
)
);
$query = new WP_Query( $args );

Понял, но хотелось бы увидеть пример с использованием пользовательской таксономии для пользовательского типа записей с видео.
Кто-нибудь?

Полагаю, что "Закрепленные записи" не поддерживаются для пользовательских типов записей. По крайней мере, этот соответствующий тикет был отменён.
