WP_Query
我知道如果用户已登录,您可以使用它来返回所有状态为 的帖子private
,但看不到如何为未登录的用户执行此操作?
EG:对于已登录的用户...
$query = new WP_Query( 'post_status=private' );
但是,没有登录的用户怎么办?
WP_Query
我知道如果用户已登录,您可以使用它来返回所有状态为 的帖子private
,但看不到如何为未登录的用户执行此操作?
EG:对于已登录的用户...
$query = new WP_Query( 'post_status=private' );
但是,没有登录的用户怎么办?
您可以使用 filter posts_clauses
,例如:
add_filter( 'posts_clauses', 'wpse70214_posts_clauses' );
function wpse70214_posts_clauses( $pieces )
{
global $wpdb;
if( !is_user_logged_in() )
$pieces['where'] = str_replace(
"post_status = 'publish')",
"post_status = 'publish' OR $wpdb->posts.post_status = 'private') ",
$pieces['where']
);
return $pieces;
}
您可以创建一个访客用户,如果当前用户未登录,则使用代码将他们作为访客登录......那么您的查询将起作用。
在构建解决方案时,您需要查看组和权限。此外,最后要考虑的是如何向来宾用户显示登录屏幕,以便他们可以以真实用户身份登录。