rsman
  • 0
Учитель

Что такое фильтр map_meta_cap?

  • 0

В чем польза map_meta_cap фильтра? Этот фильтр нигде не документирован. У меня смутное представление о том, что это может быть:

Используется для сопоставления разрешений пользователя с операциями над сообщениями.

Для чего именно он предназначен? Если возможно, приведите пример кода для его правильного использования.

Share
  1. Этот фильтр позволяет расширить функциюmap_meta_cap() . Эта функция вызываетсяWP_User->has_cap() для преобразования мета-возможности в одну или несколько примитивных возможностей.

    Например, вы хотите знать, разрешено ли текущему пользователю редактировать текущую публикацию, мета edit_post возможность. Это зависит от некоторых факторов: является ли пользователь автором поста? Пост уже опубликован? Сообщение помечено как личное? Примитивные возможности: edit_posts, edit_published_posts и : вы edit_others_posts можете edit_private_posts назначать их ролям пользователей. map_meta_cap() проверяет автора и статус сообщения и возвращает правильный набор примитивных возможностей, которые должен иметь этот пользователь, чтобы разрешить редактирование сообщения (если сообщение написано кем-то другим и опубликовано, оно вернет array('edit_others_posts', 'edit_published_posts'), поэтому пользователь должен иметь обе возможности для редактирования сообщения). Продолжать).

    Добавление этой идеи мета-возможностей и примитивных возможностей позволяет вам освободить базовый WP_User класс от знаний о сообщениях, статусах сообщений и т. д., и просто сосредоточиться на возможностях. Фактическое преобразование происходит во внешней функции, map_meta_cap() .

    Фильтрmap_meta_cap позволяет расширить функциональность, например, при использовании пользовательских постов. Я считаю, что базовая поддержка предоставляется, если вы установите capabilities аргумент register_post_type , но упомянутая статья Джастина Тэдлока и плагин Prospress предоставляет полные примеры этого. Но вы можете настроить его, чтобы полностью перевернуть систему возможностей, если хотите.

    • 0
  2. Этот фильтр можно использовать для отображения мета-возможностей для пользовательских типов сообщений. В этой статье есть хороший пример кода:

    http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types

    • 0
  3. Это фильтр функции map_meta_cap() . Судя по описанию, эта функция выписывает общие возможности ( can_do_stuff ), которые передаются в более конкретные (если автор сообщения, то can_do_this_stuff и can_do_that_stuff_also ), при необходимости проверяя различные условия.

    К сожалению, это не задокументировано в Кодексе, и я не могу найти ни одного прямого вызова этой функции в исходниках WP 3.0.1.

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

    • 0

Оставить ответ

You must login to add an answer.