Intereting Posts
Как сделать жесткие коды Пользовательские пункты меню Где хранить медиа, загруженные плагином? Как WordPress обрабатывает сеансы? Изменение meta_query основного запроса на основе пользовательских query_vars и использование pre_get_posts WordPress 3.1 заставляет мое выпадающее меню исчезать, jquery не работает Пользователь базы данных MySQL: Какие привилегии необходимы? Что происходит с моими более старыми постами, если я переключаюсь на дочернюю тему? ОШИБКА: файлы cookie заблокированы из-за неожиданного выхода – окончательное решение Как узнать, в каком порядке WordPress помещает файлы CSS? Показать только ссылку на автора Добавить таблицы стилей и js в файлы шаблонов при использовании короткого кода Как поддерживать структуру permalink WordPress с настраиваемым контентом с параметрами URL? Скрыть текст, если нет главной страницы Форматирование штрих-кодов и возврат в верхнюю часть контента Как включить файл для администратора и 2 страницы без загрузки на другие части сайта?

Как добавить строку 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 – это фантастика и дает вам очень хороший контроль. Может быть, я что-то упустил, но я никогда не чувствовал необходимости «сворачивать свои собственные».