Плагин для ограничения неадминистраторского пользователя существующими тегами

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

6
02.04.2012, 18:43
4 ответа

Если Вам уже не создали Ваши теги, можно использовать "Объем, Добавляют Теги" плагин - http://wordpress.org/extend/plugins/bulk-add-tags/

Затем для ограничения всех пользователей кроме администраторов от добавления новых тегов через экран "New Post" добавьте этот код к functions.php файлу темы:

//Hide Post Page Options from all except Administrator
if (!current_user_can('administrator')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\"text/css\"> .jaxtag { display: none; }</style>";
print($hide_post_options);
}
add_action( 'admin_head', 'hide_post_page_options'  );
}

Это просто скроет поле для ввода новых тегов от всех пользователей кроме администраторов.

Я на самом деле использую этот метод для сокрытия многих областей страницы "New Post". Просто найдите и добавьте класс или идентификатор отделения элемента прежде { display: none; } и разделенный запятыми. Если Вы незнакомы, можно использовать плагин Firebug с Firefox, или просто щелкнуть правой кнопкой и выбрать, "Осматривают Элемент" в Chrome.

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

2
19.02.2020, 22:05
  • 1
    Спасибо за Вас ответ. Если бы поле тега скрыто, как неадминистраторский пользователь отметил бы сообщение с существующими тегами? –  ltfishie 11.04.2012, 16:17
  • 2
    Существует две опции в Тегах meta поле: 1 - Вводят Ваши собственные теги. 2 - "Выбирают из наиболее используемых тегов". Код только скрывает способность ввести новые теги. А-ч –  Travis Pflanz 11.04.2012, 16:39
  • 3
    хорошо, который мог бы работать. Но, учитывая 1000-е тегов, тот дисплей будет немного громоздким. Но это не плохой способ запуститься. Я смог делать некоторую обработку фронтенда, чтобы заставить его выглядеть лучше. –  ltfishie 11.04.2012, 16:43
  • 4
    Любопытный, с 1000-ми тегов для пользователей для выбора из, как Вы предполагаете пользователей, выбирающих их теги? Я прошу поэтому, возможно, чтобы другие могли найти более точное решение. –  Travis Pflanz 11.04.2012, 16:48
  • 5
    я думал опережающий ввод, где можно только выбрать из выпадающего. –  ltfishie 11.04.2012, 17:38

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

Вот другое решение, не точно, что Вы упомянули в своем комментарии к другому ответу, но это действительно делает немного легче для пользователей найти теги, которые они хотят, поскольку теги перечислены в алфавитном порядке.

Управляйте плагином Возможности Тегов - http://wordpress.org/extend/plugins/manage-tags-capability/

Кроме того, должен отметить: Этот метод позволяет пользователям выбирать из ВСЕХ доступных тегов. Я просто понял, другой метод только позволяет пользователям выбирать из "наиболее используемых" тегов.

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

1
19.02.2020, 22:05
  • 1
    Управлять возможность тегов, кажется, подходящий вариант, я буду играть с нею немного. –  ltfishie 11.04.2012, 19:55
  • 2
    Управлять возможность тегов кажется соответствиями плагинов, что я прошу здесь точно. –  ltfishie 11.04.2012, 20:23
  • 3
    Glad это соответствует Вашим потребностям. Я сообщу, нахожу ли я прогнозирующую текстовую опцию. Сообщите мне, находите ли Вы тот также. –  Travis Pflanz 11.04.2012, 20:56

Это - то, как я решаю ту же проблему (в functions.php Вашей темы):

/* Removing Tags for users */
if (is_admin()) :
function my_remove_meta_boxes() {
 if(!current_user_can('publish_posts')) { 
   remove_meta_box('tagsdiv-post_tag', 'post', 'normal');
 }
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );
endif;

Сначала мы проверяем, является ли это администраторская область, затем мы проверяем, может ли пользователь опубликовать сообщения (обычно, это - администраторы и редакторы), чем мы делаем наше волшебство с remove_meta_box.

0
19.02.2020, 22:05
  • 1
    Путем удаления meta поля полностью, как пользователи могут использовать существующие теги? –  shea 27.12.2012, 22:00
  • 2
    Он просто удаляет MetaBox, если пользователь не может опубликовать Сообщения. –  fischi 27.12.2012, 22:44

Ни одно из этих решений не сделало точно, что я должен был позволить неадминистраторским пользователям использовать существующие теги на сообщении, но не создавать новые теги. Таким образом, я создал следующее решение, которое работает отлично - хотя оно не предоставляет обратной связи пользователю, что их теги не были добавлены (оно действительно просто сразу отменяет создание тега):

add_action('create_term','undo_create_term',10, 3);

function undo_create_term ($term_id, $tt_id, $taxonomy) {
    if ( !current_user_can( 'administrator' ) )  {
        if($taxonomy == 'post_tag') {
        wp_delete_term($term_id,$taxonomy);
        }
    }
}
5
19.02.2020, 22:05

Теги

Похожие вопросы