我已经在WordPress主题中注册了CPT。我可以按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中按category_name获取帖子。
$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;
#1首先, 不要使用’ posts_per_page’ => -1, 这会严重影响查询速度。
【无法使用CPT类别获取帖子】其次, 只需使用WP_Query并指定分类参数, 如此处所述:https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters
这样的事情应该工作
$args = array(
'post_type' =>
'achivement', 'posts_per_page' =>
500, 'tax_query' =>
array(
array(
'taxonomy' =>
'achivement-category', 'field'=>
'name', ), ), );
$query = new WP_Query( $args );
推荐阅读
- 在DIVI渲染中不工作CSS(但在Builder中工作)
- 需要在WordPress网站的代码中添加语法颜色
- 需要解决DIVI wordpress主题错误的方法
- 需要帮助消除滚动菜单上的不透明度
- 页面中的导航项但不显示WordPress
- 在一个WordPress主题上调整浏览器窗口的大小并且添加JS代码移动菜单关闭按钮后,Navbar不起作用
- 同志们进过我的奋斗全部的STP集合来了,点赞收藏葱鸭!你以为只有这些,还有还生成树BPDUPvst+
- 自上而下的理解网络——DNS篇
- 一生挚友redo logbinlog《死磕MySQL系列 二》