我有以下代码可以工作和隐藏(来自非作者)标准WordPress“编辑器”角色登录时显示的所有页面和帖子,并尝试在仪表板中查看它们。这样,编辑只能看到他们所作的帖子/页面。
function posts_for_current_author($query) {
if ( !current_user_can( 'update_core' ) ){ //is not admin
global $user_level;
if($query->is_admin) {
global $user_ID;
$query->set('author', $user_ID);
unset($user_ID);
}
unset($user_level);
return $query;
}
}
add_filter('pre_get_posts', 'posts_for_current_author');
我一直在尝试修改此代码以仅隐藏页面而不隐藏帖子 - 但没有成功。
以下代码更改会导致所有帖子和页面都显示给编辑
if ( !current_user_can( 'update_core' ) && $query->is_page ){ //is not admin is page
我做错了什么?
PS:我知道它现在是什么标准编辑器角色 - 这只是任何自定义角色的一个例子。
编辑: 我找到了一个解决方案,但它并不漂亮:
if ( !current_user_can( 'update_core' ) && $_GET['post_type']=="page"){
如果有人知道更好的方式,我会很感激。请注意,我不需要它是超级安全的。