据我所知,您有一个自定义的帖子类型作为事件和用户角色,如秘书。
现在,如果秘书登录,他只能看到自己添加的事件,而不能看到其他事件。
因此,如果上述内容正确,那么我们将使用pre_get_posts 滤器
function wp_list_mine_posts( $wp_query_obj ) {
// Front end, do nothing
if( !is_admin() )
return;
global $current_user, $pagenow;
get_currentuserinfo();
// http://php.net/manual/en/function.is-a.php
if( !is_a( $current_user, \'WP_User\') )
return;
// Not the correct screen, bail out
if( \'edit.php\' != $pagenow )
return;
// Not the event post type, bail out
if( \'event\' != $wp_query_obj->query[\'post_type\'] )
return;
// If the user is not administrator, filter the post listing
if( ! current_user_can( \'delete_plugins\' ) )
$wp_query_obj->set( \'author\', $current_user->ID );
}
add_action( \'pre_get_posts\', \'wp_list_mine_posts\' );
因此,只有管理员才能看到所有用户添加的所有事件。若部长登录,那个么他只能看到自己添加的事件。