这项工作的基础其实很简单。本质上,你只需要钩住pre_get_posts
并设置author
query var为您要限制结果的每种查询类型的当前登录用户的值。
function logged_in_user_posts( $query ){
if ( is_user_logged_in() ){
global $current_user;
get_currentuserinfo();
$query->set( \'author\', $current_user->ID );
} else {
// force query to return nothing if user not logged in
// you may want to handle this more elegantly
$query->set( \'author\', -1 );
}
}
add_action( \'pre_get_posts\', \'logged_in_user_posts\' );
现在,您可能需要使用一些
conditional tags 此处限制此操作所针对的查询类型。例如,这将导致页面按原样变为404,因此您可能希望确保查询不是针对页面:
if( ! $query->is_page() )
EDIT- 在重读了你的问题后,我想我可能误解了你的意图。。。