Не получается вывести посты из кастомной таксономии.
Не получается вывести посты из кастомной таксономии.
Создал новый post_type = 'custom_portfolio':
function custom_portfolio_post() {
register_post_type( 'custom_portfolio',
array('labels' => array(
'name' => __('Примеры работ', 'jointswp'),
'singular_name' => __('Custom Work', 'jointswp'),
'all_items' => __('Все работы', 'jointswp'),
'add_new' => __('Добавить новую', 'jointswp'),
'add_new_item' => __('Добавить новый пример работы', 'jointswp'),
'edit' => __( 'Edit', 'jointswp' ),
'edit_item' => __('Edit Post Types', 'jointswp'),
'new_item' => __('New Post Type', 'jointswp'),
'view_item' => __('View Post Type', 'jointswp'),
'search_items' => __('Search Post Type', 'jointswp'),
'not_found' => __('Nothing found in the Database.', 'jointswp'),
'not_found_in_trash' => __('Nothing found in Trash', 'jointswp'),
'parent_item_colon' => ''
),
'description' => __( 'This is the portfolio post', 'jointswp' ),
'public' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'show_ui' => true,
'query_var' => true,
'menu_position' => 10,
'menu_icon' => 'dashicons-format-gallery',
'rewrite' => array( 'slug' => 'custom-portfolio', 'with_front' => false ),
'has_archive' => 'custom_portfolio',
'capability_type' => 'post',
'hierarchical' => false,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'sticky', 'post-formats'),
'taxonomies' => array('category', 'custom_gallery')
)
);
/* Цепляю таксономию 'custom_gallery' */
register_taxonomy_for_object_type('category', 'custom_gallery');
}
/*Регистрирую таксономию*/
register_taxonomy( 'custom_gallery',
array('custom_portfolio'), /* if you change the name of register_post_type( 'custom_type', then you have to change this */
array('hierarchical' => true, /* if this is true, it acts like categories */
'labels' => array(
'name' => __( 'Разделы галерей', 'jointswp' ), /* name of the custom taxonomy */
'singular_name' => __( 'Раздел галерей', 'jointswp' ), /* single taxonomy name */
'search_items' => __( 'Искать разделы галерей', 'jointswp' ), /* search title for taxomony */
'all_items' => __( 'Все разделы галарей', 'jointswp' ), /* all title for taxonomies */
'parent_item' => __( 'Parent Custom Category', 'jointswp' ), /* parent title for taxonomy */
'parent_item_colon' => __( 'Parent Custom Category:', 'jointswp' ), /* parent taxonomy title */
'edit_item' => __( 'Редактировать раздел галерей', 'jointswp' ), /* edit custom taxonomy title */
'update_item' => __( 'Update Custom Category', 'jointswp' ), /* update title for taxonomy */
'add_new_item' => __( 'Добавить новый раздел галерей', 'jointswp' ), /* add new title for taxonomy */
'new_item_name' => __( 'New Custom Category Name', 'jointswp' ) /* name title for taxonomy */
),
'show_admin_column' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'custom-gallery' ),
)
);
/*Инит*/
add_action( 'init', 'custom_portfolio_post');
После этого в админке появлятся панель "ПРИМЕРЫ РАБОТ" и пункт "Разделы галерей". Создаю соответственно несколько разделов: дизайн проекты, отделка, корпусная мебель итд. И им присваиваю записи.
При попытке получить посты для каждого раздела через get_posts() получаю фигу.
$args_posts = array(
'numberposts' => 20,
'category' => id_раздела,
'post_type'=> 'custom_portfolio'
);
$posts = get_posts( $args_posts );
if($posts) {
foreach ($posts as $post) {
the_title(); ?
}
}
else {
echo "Здесь нет постов";
}
В чем может быть проблема? Когда получаю посты для обычных "Рубрик" все получается. Как только приходит айди категории из созданной таксономии - все, пустота.
Заранее спасибо
Да, это я понимаю, мне бы на примере чтоли, я уже и wp-query() пробовал, и get_posts(), только вот решения не нашел.
Вообще неужели такая крутая CMS как WP не предоставляет какого-то нормального решения? не верю!
Я правильно понимаю, что таксономия - это кастомный тип РУБРИК? У разделов внутри таксономии ведь тоже есть свои ID. Вот как по ним вытащить посты?
В общем, спасибо! Вопрос решился вот так:
$args = array( 'post_type' => 'custom_portfolio', 'custom_gallery' => 'taxonomy-slug' ); $query = new WP_Query( $args );
Хорошо, что зарегался здесь)
Молодец, что разобрался!
Потому что
custom_galleryнеcategory. Это же разные таксономии. Вот он ничего и не выдаёт, так как ты указываешь "дай мне category с id таким". А такой рубрики нет, потому что онаcustom_gallery. Используй wp_query для этого, смотри там пункт "Параметры таксономий". В целом,get_postsможет принимать те же параметры, что иwp_query, потому можешь их и там использовать.