我正在尝试按作者检索自定义帖子类型,但没有成功。
注册职位类型:
register_post_type( \'resume\', array(
\'capability_type\' => \'resume\',
\'map_meta_cap\' => true,
\'show_in_rest\' => true,
\'supports\' => array( \'title\', \'editor\', \'comments\', \'author\', \'revisions\' ),
\'rewrite\' => array( \'slug\' => \'resume\' ),
\'has_archive\' => true,
\'public\' => true,
\'menu_icon\' => \'dashicons-welcome-write-blog\'
\'labels\' => array(
\'name\' => \'Resumes\',
\'add_new_item\' => \'Add New Resume\',
\'edit_item\' => \'Edit Resume\',
\'all_items\' => \'All Resumes\',
\'singular_name\' => \'Resume\'
),
) );
我通过以下方式获取所有条目:
new WP_Query( array(
\'post_type\' => \'resume\'
) );
但没有以下结果:
new WP_Query( array(
\'post_type\' => \'resume\',
\'author\' => 1,
) );
我做错了什么?
最合适的回答,由SO网友:Howdy_McGee 整理而成
无论何时使用capability_type
然后,您需要将这些功能分配给应该有权访问post类型的角色;否则,他们将无法访问post类型。
不久前,贾斯汀·塔洛克写了一篇关于capbility_type
: Meta Capabilities For Custom Post Types.
如果您不想将这些功能分配给角色,那么只需将其更改为\'capability_type\' => \'post\'
或\'capbility_type\' => \'page\'
这将使任何有权访问帖子或页面的人都可以访问您的帖子类型。
需要注意的几件事:
1) 确保您的post type slug相同。它可能被标记为“恢复”,但slug可能不同。如果看不到post type注册码,很难说清楚。
2) 您需要将查询分配给一个变量,然后循环该变量。这是一个与普通查询不同的辅助查询。你需要自己循环。文档中有一些关于标准循环的好例子:
https://developer.wordpress.org/reference/classes/wp_query/#standard-loop
<?php
// the query
$the_query = new WP_Query(array(
\'post_type\' => \'resume\',
\'author\' => 1,
) );
?>
<?php if ( $the_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php endwhile; ?>
<!-- end of the loop -->
<!-- Reset the main query data -->
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>
<?php endif; ?>
3)确保这就是你要找的作者。通常ID 1是为站点创建的第一个作者,就像管理员一样。