Я искал форумы, но я могу найти только некоторые связанные проблемы.
Это моя проблема:
Я хотел бы назначить некоторым редакторам возможность добавлять только сообщения в предопределенный срок пользовательской таксономии.
Я сделал таксономию, называемую событиями, которая содержит список событий, добавленных администратором. Некоторым пользователям разрешено добавлять сообщения, используя одно событие, например «Япония» или «Гаити».
Кто-нибудь с намеком на то, как справиться с этим? есть ли плагины управления пользователями, которые обладают такими возможностями?
Привет, Йоост.
Сначала запустите действие save_post: http://codex.wordpress.org/Plugin_API/Action_Reference/save_post
Затем проверьте возможности: у вас есть документы по этому поводу?
Затем get_the_terms для $ post_id, предоставленного save_post, и таксономии, которую вы хотите проверить. http://codex.wordpress.org/Function_Reference/get_the_terms
Затем, если они используют термин (см. Примечание ниже), им не разрешено использовать остановку / удаление сообщения, установить предупреждение или удалить этот термин.
Примечание. Таксономия – это список терминов, которые могут применяться к сообщению. Пример: таксономия «Нация» будет содержать такие термины, как «Мексика», «Франция» и «Индия»,
Отличная статья о роли пользователя и управлении ролью пользователя, для вашего случая, возможно, посмотрите на добавление пользовательской роли каждому пользователю с помощью WP_User_class или, возможно, даже с новой ролью с теми же возможностями, что и редактор, но + 1 event_poster или что-то подобное, статья заполнена о хорошем материале, о котором вы можете обратиться.
Везде, где вы показываете таксономии для выбора пользователем, когда он вошел в систему (вы назначаете кепки, поэтому я предполагаю, что пользователь должен войти в систему), просто выполните проверку как это …
if(current_user_can('your_custom_capability')) { //display only those taxonomies that he should be allowed to post into }
Если вы показываете список категорий / таксономий по умолчанию на панели управления, вам нужно посмотреть вокруг фильтра, который применяется, когда перечислены категории / таксономии. Я проверю этот фильтр и посмотрю, смогу ли я его найти.