Если вы запустите несколько авторов WordPress блог с рядом участников и / или авторов, или если вы открыли свой блог для приглашенных плакатов, вы быстро заметите определенные данные, которые вы не можете увидеть такие не-админ WordPress счетов.
Такие данные могут включать определенные пункты меню, черновики и опубликованные сообщения, присвоенные другим пользователям, полные (кумулятивные) публикации, черновики, ожидающие рассмотрения и разгромленные сообщения и т.д.
В будущем посте, я буду обсуждать, как бороться с сокрытием определенных элементов меню от пользователей, которые не должны их видеть.
В этой статье я предоставим два фрагмента кода для рассмотрения других ситуаций, упомянутых выше.
Поехали…
Предотвращение не-администратор WordPress счета от просмотра контента, назначенного для других пользователей в WP-Администратор
добавить действие ('load-edit.php', 'ehi-kioya-posts); функция ehi'kioya-posts-для-текущий вкладчик () - глобальная $user в случае (текущий (текущий ('автор')) - если (!isset ($-GET''author')) - wp-redirect (добавить-query-arg('автор', $user)))) ;); выход; еще - если ("гет" автор: $user-ID) - wp'redirect (добавить- query-arg('автор', $user-ID)); выход;
Этот код должен быть помещен в файл functions.php вашей активной темы WordPress.
То, что делает вышеуказанный кусок кода, довольно просто…
Когда WordPress загружает страницу edit.php, код проверяет, является ли пользователь участником. Если это так, то он принудительно переписывает запрошенный URL, чтобы включить идентификатор автора пользователя в качестве фильтра.
Таким образом, пользователи-участники всегда будут получать отфильтрованную версию экрана для отсылки WordPress. Это отфильтрованное представление отображает только сообщения, назначенные в настоящее время зарегистрированным пользователем.
В то время как роль вкладчика была жестко закодирована в вышеуказанный фрагмент, концепция может быть легко расширена для работы для любой другой роли пользователя.
Скрыть все, опубликованные и trashed. Только показывать пользователям размещать счета их собственного контента.
По умолчанию любые пользователи, которые могут видеть WordPress админ правки экран будет также увидеть полный (кумулятивный) пост рассчитывает всех, опубликованные, проекты, и мусор пунктов.
Цифры представлены следующим образом:
Все (267) Опубликовано (207) Черновики (60) Корзина (7)
Эти цифры представляют собой совокупность всего содержимого по всему сайту и всем пользователям.
В виду того что ваши не-админ WordPress потребители вероятно только имеют пригорошню черновиков, назначенных к им в любое время, номера показанные на их экране отсеиваем фактически довольно никудышны к им.
Было бы неплохо, если пользователь-участник может видеть только количество содержимого в своей очереди и ничего больше.
Что-то вроде этого:
Все (9) Черновики (9)
Вот код для достижения этой цели:
добавить фильтр ('wp'count-posts', 'ehi'kioya-wp'count-posts', 10, 3); функция ehi'kioya-wp'count-posts ($counts, $type, $perm) - глобальные $wpdb; если (!-а-админ() 'readable' ! » $perm) - возвращение $counts; Изменяйте подсчеты только в том случае, если пользователь является участником. Любая другая роль может быть жестко закодирована и здесь. если (!текущий пользователь-может ('вкладчик')) - возврат $counts; Кроме того, изменить количество голосов, только если пользователю не разрешено отменять публикации других пользователей. Комментарий из вкладчика, если блок выше, и некомментарий ниже блока, если вы предпочитаете этот стиль. /$post-type-object - получить пост-тип-объект ($type); если (текущий »пользователь» может ($post»type-object-'gt;cap-gt;edit-others)) ) ) ) » » » » возвращение $counts; В/ $query : "SELECT пост-статус, COUNT ( ) AS num'posts от "$wpdb-gt;posts" где пост-тип - %s And (пост-автор - %d) GROUP BY пост-статус"; $results (массив) $wpdb-й gt;get-results ($wpdb-й gt;prepare($query, $type, get-current-user-id() ), ARRAY-A ); $counts - массив-заполнение ключей (get'post'stati(), 0); foreach ($results как $row) - $counts» $row »пост-статус» - $row »нум»;; возврат (объект) $counts;
Опять же, поместите этот код в файл functions.php вашей активной темы WordPress.
Если у вас есть куча других ограничений разрешения вы хотели бы реализовать на wordPress несколько автор веб-сайт, вы должны действительно проверить плагин редактора роли пользователя.
Я коснулся этого плагина в предыдущей статье. Но полное освещение его использования будет сделано в будущей статье.
Вопрос: ehikioya.com