正如@s\\u ha\\u dum已经指出的,发布帖子时可以使用内置的私有帖子状态功能。这将对所有注销的用户隐藏这些帖子。
由于您已经选择了自定义字段路径,因此可以对自定义帖子类型存档进行以下更改
删除自定义查询。这会弄乱页面功能和分页。我写过an answer 不久前关于在何处使用自定义查询以及在何处不使用自定义查询
使用pre_get_posts
如我的链接帖子所述,相应地修改主查询。这将解决您的所有问题。
NOTE: 默认情况下post_type
使用人:WP_Query
是post
. 你可能没有适合你查询的默认帖子,这就是为什么你没有得到任何帖子
您需要在函数中执行类似的操作。恢复到post type archive页面中的默认循环后的php:
NOTE: 仅示例代码,根据需要进行调整。需要PHP 5.3+)
add_action( \'pre_get_posts\', function ( $q )
{
if ( !is_admin() // VERY important, targets only front end queries
&& $q->is_main_query() // VERY important, targets only main query
&& $q->is_post_type_archive( \'YOUR_POST_TYPE_NAME\' )
// Which post type archive page to target.
// for example: && $q->is_post_type_archive( \'works\' )
) {
$q->set( \'meta_key\', \'META_KEY_NAME\' );
//for example: $q->set( \'post_status\', \'publish\' );
$q->set( \'meta_value\', \'META_VALUE_VALUE\');
// Rest of your arguments to set
}
});