是否可以“过滤”Wordpress中页面(http://cl.ly/6nLC)的“编辑”屏幕中显示哪些页面?我已经查看了Wordpress的动作/钩子部分的插件开发人员,但我找不到任何。
我想要完成的是某些用户可以编辑某些页面(和子页面),而其他人不能编辑这些页面,但可能能够编辑其他页面。
我已经编写了一个插件,可以将不同的用户放在不同的组中,现在只需要拥有不同的权限,哪个用户是哪个组的成员存储在user_meta表中。
然而,如果有“任何”过滤器钩子/方法,有人可以指出这一点,我想我将能够从那里走得更远。
亲切的问候。
答案 0 :(得分:4)
您可以使用posts_where
过滤器向SQL查询添加条件以过滤掉某些页面。可以使用load-{filename}
操作来确保仅在管理页面时应用过滤器。
add_action('load-edit.php', 'my_load_edit_php_action');
function my_load_edit_php_action() {
if ($_GET['post_type'] !== 'page') return;
add_filter('posts_where', 'my_posts_where_filter');
}
function my_posts_where_filter($sql) {
if (current_user_can('your_capability')) {
global $wpdb;
$sql = " AND $wpdb->posts.ID NOT IN (1,2,3)" . $sql;
}
return $sql;
}