Intereting Posts
Сделать столбец таксономии отсортированным в админ? Работает ли рамка «Тема» или создатели темы замедляют производительность? Пользовательское полевое изображение для избранного изображения Как добавить отображаемое изображение на лицевую форму? запрос одного случайного сообщения работает localhost, а не на сайте WordPress добавляет теги в контент плагина Контактная форма submit, нажав дважды Отцепить jQuery от WooCommerce через `functions.php`? Как дать возможность (публиковать записи авторов) роли автора? сделать титры подписи WordPress отзывчивыми Как я могу условно установить сценарий для одного типа сообщений CPT с помощью плагина? WordPress post next / prev не работает Страницы WooCommerce доступны только для зарегистрированных пользователей Фильтровать сообщения по настраиваемому полю (дополнительные пользовательские поля) Получайте изображение вне цикла, используя foreach

Как добавить строку TinyMCE, которую могут видеть все пользователи, а не просто администраторы?

В настоящее время я успешно добавил ряд кнопок короткого кода в редактор TinyMCE в WordPress. Проблема в том, что только администраторы могут видеть строку, и мне нужны вкладчики и редакторы, чтобы это увидеть. Я проверил Codex для add_action и add_filter, и я не вижу никаких конкретных аргументов для указания роли пользователя или чего-либо подобного. Как я могу изменить этот код, чтобы все зарегистрированные пользователи могли видеть новую строку, а не просто администраторов? Вот код, который я использую, чтобы добавить строку в окно редактора:

// add shortcode buttons to the tinyMCE editor row 3 function add_button_3() { if ( current_user_can('edit_posts') && current_user_can('edit_pages') ) { add_filter('mce_external_plugins', 'add_plugin_3'); add_filter('mce_buttons_3', 'register_button_3'); } } //setup array of shortcode buttons to add function register_button_3($buttons) { array_push($buttons, "dropcap", "divider", "quote", "pullquoteleft", "pullquoteright", "boxdark", "boxlight", "togglesimple", "togglebox", "tabs", "signoff", "columns", "smallbuttons", "largebuttons", "lists"); return $buttons; } //setup array for tinyMCE editor interface function add_plugin_3($plugin_array) { $plugin_array['lists'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['signoff'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['dropcap'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['divider'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['quote'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['pullquoteleft'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['pullquoteright'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['boxdark'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['boxlight'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['togglesimple'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['togglebox'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['tabs'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['columns'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['smallbuttons'] = get_template_directory_uri().'/js/customcodes.js'; $plugin_array['largebuttons'] = get_template_directory_uri().'/js/customcodes.js'; return $plugin_array; } add_action('init', 'add_button_3'); // add the add_button function to the page init 

Solutions Collecting From Web of "Как добавить строку TinyMCE, которую могут видеть все пользователи, а не просто администраторы?"

В вашем операторе if пользователь должен иметь возможность отправлять сообщения и страницы, которые по умолчанию применяются только к администраторам и редакторам. Вы уверены, что редакторы не могут видеть кнопки? Если вы хотите, чтобы кто-нибудь, кто мог редактировать сообщения, чтобы видеть кнопки (например, авторы и вкладчики), edit_pages чек для edit_pages или делал это или заявление (что маловероятно для большинства установок, но я предполагаю, что это может произойти).

Итак, вместо:

if ( current_user_can('edit_posts') && current_user_can('edit_pages') )

использование

if ( current_user_can('edit_posts') )

или

if ( current_user_can('edit_posts') || current_user_can('edit_pages') )

Мое решение состояло в том, чтобы сначала попробовать подключить плагин TinyMCE Advanced – это фантастика и дает вам очень хороший контроль. Может быть, я что-то упустил, но я никогда не чувствовал необходимости «сворачивать свои собственные».