WordPress скрывает страницы в панели управления

#wordpress #roles #capability

#wordpress #роли #возможность

Вопрос:

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

Спасибо

Ответ №1:

Вы должны создать новую роль пользователя и определить ее возможности для пользовательских ролей.

 add_role( 'photo_uploader', 'Photo Uploader', array( 'view_galleries' ) );
// remove "view_galleries" to this role object
$role->remove_cap( 'photo_uploader', 'view_galleries' );
 

Подробнее о пользовательских пользовательских ролях и возможностях здесь.

Если вы ищете более простое и быстрое решение, вы можете сделать это с помощью следующего плагина

http://wordpress.org/plugins/members/

Комментарии:

1. Привет, я изучал это, но проблема в том, что я не хочу скрывать все страницы от пользователя. Только те, которые ему не принадлежат. Таким образом, такая возможность не будет работать, поскольку она заблокирует все страницы от пользователя.

2. Вы можете поместить хук в список страниц и изменить запрос, чтобы отображать только страницы, созданные пользователями. add_filter(‘manage_event_posts_columns’, ‘bs_event_table_head’); функция bs_event_table_head( $defaults ) { $defaults[‘author’] = ‘Added By’; возвращает $defaults; }

3. Возможно, я что-то упускаю, но в этом массиве есть только заголовки столбцов, и он не позволяет мне изменять список страниц. Я просмотрел другие фильтры и нашел get_pages() и wp_list_pages(). Первый, похоже, не вызывается на этой конкретной странице, а последний представляет собой список html, для сравнения которого потребуется много манипуляций со строками. Есть ли что-то, чего мне не хватает, или что-то еще, на что я могу посмотреть?