我正在做一个项目,编辑需要在主页上看到待处理的帖子,以便在发布之前对其进行改进。
也许这与循环有关:
如果已记录编辑器:
if ( current_user_can(\'edit_post\') ) {
display the pending posts
}
显示发布和挂起帖子的参数:
$args = array( \'post_type\' => \'post\', \'post_status\' => \'publish, pending\' );
完成的循环:
<?php
if ( current_user_can(\'edit_post\') ) {
$args = array( \'post_type\' => \'post\', \'post_status\' => \'publish, pending\' );
} else {
$args = array( \'post_type\' => \'post\', \'post_status\' => \'publish\' );
}
$wp_query = new WP_Query($args); while ( have_posts() ) : the_post(); ?>
…the content here...
<?php endwhile; ?>
<?php wp_reset_postdata(); // reset the query ?>
这对我有用。
你认为这是正确的吗?
也许代码可以改进。
谢谢你的帮助。
最合适的回答,由SO网友:s_ha_dum 整理而成
我会过滤pre_get_posts
.
function allow_pending_posts_wpse_103938($qry) {
if (!is_admin() && current_user_can(\'edit_posts\')) {
$qry->set(\'post_status\', array(\'publish\',\'pending\'));
}
}
add_action(\'pre_get_posts\',\'allow_pending_posts_wpse_103938\');
这应该说明
pending
在前端向编辑器发布所有查询。当然,如果你愿意,你可以限制更多。
我会添加一些代码来标记挂起的帖子,以便您的编辑一眼就能知道什么是挂起的。