Intereting Posts
Помощь отладки PHP-фильтра для wordpress Как отобразить одиночную выписку Использование init hook для register_taxonomy вызывает invalid_taxonomy в wp_insert_term () Скрыть Добавить в корзину Кнопка как $ wpdb отличается WP_Query? Подавать контент из централизованного местоположения Получить последнее сообщение с прикрепленным изображением Кнопка на странице администратора для запуска экспорта из базы данных Новый термин таксономия и описание на первой странице. Ввод – х Сообщения, которые не отображаются в правильном алфавитном или идентификационном порядке при использовании get_posts / orderby, но только на производственном сервере Как получить идентификатор категории (уродские постоянные ссылки) в моем меню суб-навигации? next_post_link () не работает для отдельного сообщения типа post post не удалось показать персонализированное изображение типа персонализированного сообщения Пользовательские таксономии Рассчитать будущую дату

Ограничить доступ администратора к определенным страницам для определенных пользователей

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

Выполняя сайт с 45-50 страницами, я понял, что было бы намного лучше работать с пользователем, если в меню «Страница» перечислены только те страницы, которые пользователь должен иметь возможность изменять / обновлять.

Я пробовал плагины ниже безрезультатно. У расширенного диспетчера доступа есть функциональность, но не работает / не работает на 3.5.1.

http://wordpress.org/extend/plugins/advanced-access-manager http://wordpress.org/extend/plugins/role-scoper http://wordpress.org/extend/plugins/adminimize http: // wordpress .org / продлить / плагины / s2member

Фрагмент кода в functions.php?

Этот код, похоже, хорошо работает для меня (в functions.php):

add_filter( 'parse_query', 'exclude_pages_from_admin' ); $user_id = get_current_user_id(); if ($user_id == 2) { 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'] = array('123','234','345'); } } } 

Это не позволит мне прокомментировать, поэтому я добавляю это как новый ответ.

Ошибка:

Предупреждение: «call_user_func_array () ожидает, что параметр 1 будет действительным обратным вызовом,> функция« exclude_pages_from_admin »не найдена или недействительным именем функции».

… вызвано вызовом функции только после проверки user_id. Поэтому, если вы вошли в систему не как этот пользователь, функция не существует, и фильтр возвращает эту ошибку, так как она ищет функцию, но не может ее найти.

Так должно быть:

 add_filter( 'parse_query', 'exclude_pages_from_admin' ); function exclude_pages_from_admin($query) { $user_id = get_current_user_id(); if ($user_id == 2) { global $pagenow,$post_type; if (is_admin() && $pagenow=='edit.php' && $post_type =='page') { $query->query_vars['post__not_in'] = array('123','234','345'); } } }