Wordpress, фильтрация страниц в окне редактирования администратора - PullRequest
2 голосов
/ 16 мая 2011

Можно ли «фильтровать», какие страницы отображаются на экране «Редактировать» для страниц (http://cl.ly/6nLC) в Wordpress?Я заглянул в раздел действий / ловушек Wordpress для разработчиков плагинов, но не смог найти ни одного.

Я пытаюсь сделать так, чтобы определенные пользователи могли редактировать определенные страницы (и дочерние страницы) и других людей.не может редактировать эти страницы, но может иметь возможность редактировать другие страницы.

Я уже написал плагин, который позволяет объединять разных пользователей в разные группы, которым теперь просто необходимы разные права, какой пользователь является членом какой группы хранится в таблице user_meta.

Однако, если для этого есть «любой» фильтр / метод, может кто-то указать на это, я думаю, что я смогу пойти дальше.

С уважением.

1 Ответ

4 голосов
/ 16 мая 2011

Вы можете использовать фильтр 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...