Я зарегистрировал CPT в теме WordPress.Я могу получать сообщения в цикле по post_type, но когда я пытаюсь получить сообщения по category_name.Это не дает мне результатов.
add_action( 'init', 'achivement', 0 );
function achivement() {
register_post_type( 'achivement', array(
'label' => __( 'Achivement', 'achivement-free' ),
'description' => __( 'Achivement custom post type.', 'achivement-free' ),
'public' => false,
'has_archive' => false,
'publicaly_queryable' => false,
'query_var' => false,
'show_ui' => true,
'show_in_menu' => true,
'menu_icon' => 'dashicons-networking',
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'hierarchical' => true,
'menu_position' => 20,
'supports' => array(
'title',
'editor',
),
'capability_type' => 'post',
'labels' => array(
'name' => __( 'Achivements', 'achivement-free' ),
'singular_name' => __( 'Achivement', 'achivement-free' ),
'menu_name' => __( 'Achivement', 'achivement-free' ),
'all_items' => __( 'Achivements', 'achivement-free' ),
'add_new' => __( 'Add Achivement', 'achivement-free' ),
'add_new_item' => __( 'Add Achivement', 'achivement-free' ),
'edit' => __( 'Edit', 'achivement-free' ),
'edit_item' => __( 'Edit Achivement', 'achivement-free' ),
'new_item' => __( 'New Achivement', 'achivement-free' ),
'search_items' => __( 'Search Achivements', 'achivement-free' ),
'not_found' => __( 'No Achivements found', 'achivement-free' ),
'not_found_in_trash' => __( 'No Achivements found in Trash', 'achivement-free' ),
'parent' => __( 'Parent Achivements', 'achivement-free' ),
)
) );
register_taxonomy(
'achivement-category',
'achivement',
array(
'label' => __( 'Category' ),
'rewrite' => array( 'slug' => 'achivement-category' ),
'hierarchical' => true,
)
);
}
, и вот цикл, который я пишу для извлечения сообщений по категориям в WordPress.
$posts = get_posts(array(
'post_status' => 'publish',
'posts_per_page' => -1,
'post_type' => 'achivement',
'order' => 'ASC',
));
if( $posts ):
foreach( $posts as $post ):
setup_postdata( $post );
var_dump(get_the_category());
endforeach;
wp_reset_postdata();
endif;
Я знаю, может быть, будетглупая незначительная ошибка, но я не могу ее получить.Пожалуйста, дайте мне знать, если вы можете найти эту ошибку.Я буду очень благодарен.
Спасибо
Получил ответ на рабочий запрос снизу.Я вставляю это здесь для других.
$args = array(
'post_type' => 'achivement',
'posts_per_page' => 500,
'tax_query' => array(
array(
'taxonomy' => 'strike',
'field' => 'slug',
'terms' => array( 'strike-1' ),
),
),
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post();
echo get_the_title().'<br />';
endwhile;
wp_reset_postdata();
else :
_e( 'Sorry, no posts matched your criteria.' );
endif;