Intereting Posts
Показывать только одну запись каждую неделю Как нарисовать информацию о СМИ для галереи изотопов, используя Photoswipe Фильтр Категории виджета, чтобы разрешить пользовательскую сортировку? Несколько совых каруселей на одной странице с навигационной проблемой Блокировать обновления по серверу Проверьте, вызван ли частичный файл из header.php или footer.php Отключенные трекбеки в WordPress, но я по-прежнему получаю трекбэки WordPress 3.1 удаляет «категорию» из пули Что может привести к сбою функций автоматической установки в WordPress (v3.0.3)? Как обойти ошибку, которая предотвращает удаление пользовательских меню? Ограничить количество страниц, созданных пейджингом Проблемы с владением папкой WordPress Разработка плагина, в котором пользователи могут редактировать записи, сохраненные в базе данных Виджет-подборщик Как добавить или удалить метабокс на каждой странице отдельно?

Как добавить строку 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 

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