我一直在试图找到一种方法来限制用户在管理面板的“页面”菜单中看到一些页面。
我查看了编辑。php文件并注意到:
} elseif ( \'page\' == $post_type ) {
但是,我不确定需要编辑什么才能显示some 页面和隐藏其他页面,具体取决于角色。这个Admin 将能够看到所有帖子。
这个SubAdmin 只能看到一些页面。
如何编辑编辑。php文件(或其他一些php文件)来执行此操作?
我一直在试图找到一种方法来限制用户在管理面板的“页面”菜单中看到一些页面。
我查看了编辑。php文件并注意到:
} elseif ( \'page\' == $post_type ) {
但是,我不确定需要编辑什么才能显示some 页面和隐藏其他页面,具体取决于角色。这个Admin 将能够看到所有帖子。
这个SubAdmin 只能看到一些页面。
如何编辑编辑。php文件(或其他一些php文件)来执行此操作?
获取用户的当前角色
$current_user = wp_get_current_user();
if ( !($current_user instanceof WP_User) )
return;
$roles = $current_user->roles; //$roles is an array
获取要根据角色显示的角色集页面ID后(例如) if($roles==\'administrator\'){
$args=array(\'21\',\'22\',\'23\');
}
or
if($roles==\'subscriber\'){
$args=array(\'24\',\'25\',\'26\');
}
您可以使用parse_query
使用post\\u not\\u in属性筛选挂钩以排除页面add_filter( \'parse_query\', \'exclude_pages_from_admin\' );
function exclude_pages_from_admin($query) {
global $pagenow,$post_type;
if (is_admin() && $pagenow==\'edit.php\' && $post_type ==\'page\') {
$query->query_vars[\'post__not_in\'] = $args
}
}
Important Links:
我对jQuery和AJAX尤其陌生。我有一个小问题,返回值总是0,尽管我认为这实际上是成功消息,它没有返回任何内容。我已经搜索了Google verse,在PHP回调上有die()函数,我相信add\\u操作是正确的。我在一个本地主机上工作,但我怀疑这会影响它,这都是在管理中,而不是在前端。我还检查了js是否已排队并本地化。我在chrome开发者区收到一条200 OK的消息。我还测试了http://codex.wordpress.org/AJAX_in_Plugins 它还返回了0,这让我怀疑它是否不是下