Как запретить пользователям создавать новые теги, но разрешать им использовать существующие

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

Я знаю, что могу скрыть панель тегов на боковой панели, но я не хочу этого. Я просто хочу сказать: «Извините, этот тег не существует» или что-то, когда кто-то вводит тег, который не существует.

Есть ли плагин или функция, которая сделает это для меня?

Вы можете подключиться к pre_insert_term , проверить таксономию и указать, имеет ли пользователь указанную роль:

 function disallow_insert_term($term, $taxonomy) { $user = wp_get_current_user(); if ( $taxonomy === 'post_tag' && in_array('somerole', $user->roles) ) { return new WP_Error( 'disallow_insert_term', __('Your role does not have permission to add terms to this taxonomy') ); } } add_action( 'pre_insert_term', 'disallow_insert_term', 10, 2); 

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

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