Intereting Posts
виджет: введите значение px из пользователя и используйте его как встроенный стиль в функции виджетов Показать содержимое другого домена внутри WordPress add_image_size – это не обычные изображения правильных размеров Как вставить несколько изображений в один пост в CPT Удалить html-код из мобильного виджета Получите значение Metakey, сохраняя сообщение Удерживайте комментарий в очереди, если он содержит или другие ссылки Как установить лимит пользователя на пользовательскую роль? По умолчанию блокировка сортировки полей проводки Могу ли я изменить местоположение загрузки мультимедиа для каждого пользователя? Захватите ID из сообщения из плагина и используйте его для создания объекта Как загрузить сообщение в пустой тег div в любом месте страницы? Какой крюк я могу использовать для изменения пользовательских данных после того, как он будет отображаться на странице? Запрос для ролей пользователей и их навыков Локализовать базы URL-адресов

Создать специальную кнопку в редакторе WP Tiny MCE для коротких кодов

Я пытаюсь создать специальную кнопку в редакторе Tiny MCE в редакторе сообщений WordPress. Я хочу создать кнопку для моих всплывающих подсказок короткого кода.

Проверьте мой желаемый результат: http://prntscr.com/4cy6fd

У меня есть следующий код для моего Shorttode Tooltip:

//Text tooltip function tooltip($atts, $content = ''){ $atts = shortcode_atts( array( 'class' => '', 'title' => '' ), $atts); $html = '<a class="' . $atts['class'] .'" title="'. $atts['title']. '" href="#">' . $content . ' <span>' .$atts['title']. '</span> </a>'; return $html; } add_shortcode('tooltip', 'tooltip'); 

Теперь, когда вы выполните это, вы будете использовать следующие коды для короткого кода:

 [tooltips class="top_tooltip" title="Your Tooltip here"] Text here [/tooltip] 

Что я сделал, так это то, что я создал функцию DISPLAY MY CREATED TOOLTIP SHORTCODE в файле functions.php на моей теме, используя следующие коды.

 //Create Tiny MCE buttons function mce_tooltip($button) { $buttons[] = 'superscript'; return $button; } add_filter('mce_buttons_2', 'mce_tooltip'); /* * Callback function to filter the MCE settings */ function mce_tooltip( $init_array ) { // Define the style_formats array $style_formats = array( // Each array child is a format with it's own settings array( 'class' => '', 'title' => '' ); // Insert the array, JSON ENCODED, into 'style_formats' $init_array['style_formats'] = json_encode( $style_formats ); return $init_array; } // Attach callback to 'tiny_mce_before_init' add_filter( 'tiny_mce_before_init', 'mce_tooltip' ); 

Я попробовал код, но он не отобразит мою кнопку CUSTOM для моего короткого кода в редакторе TINY MCE на WordPress. Любая идея, как сделать это лучше?

Вот результат, который я пытаюсь создать: http://prntscr.com/4cy6fd

Solutions Collecting From Web of "Создать специальную кнопку в редакторе WP Tiny MCE для коротких кодов"

Ваши функции не имеют никакого отношения друг к другу. Все, что вам нужно, кнопка, которая при нажатии добавляет [tooltips class="top_tooltip" title="Your Tooltip here"] Text here [/tooltip] в редакторе?

– Это в настоящее время то, что вы делаете –

Первая функция: function tooltip( $button ) добавляет короткий код подсказки

Вторая функция: mce_tooltip( $button ) добавляет кнопку mce_tooltip( $button ) на панель инструментов редактора

Третья функция: mce_tooltip( $init_array ) – это функция добавления стилей в меню панели инструментов редактора раскрывающегося списка стилей . Однако он ничего не сделает, потому что массив ничего не производит.

Помимо того факта, что Вторая функция и Третья функция не имеют никакого отношения к добавлению вашего короткого кода в редактор, это, скорее всего, что-то делает или вызывает ошибки.

У вас не может быть слишком функций с тем же именем. Вы используете mce_tooltip () дважды:

Это не сработает:

 function mce_tooltip( $button ) { // some code here } add_filter('mce_buttons_2', 'mce_tooltip'); function mce_tooltip( $init_array ) { // some code here } add_filter( 'tiny_mce_before_init', 'mce_tooltip' ); 

Хотя это:

 function mce_tooltip( $button ) { // some code here } add_filter('mce_buttons_2', 'mce_tooltip'); function mce_tooltip( $init_array ) { // some code here } add_filter( 'tiny_mce_before_init', 'mce_tooltip' ); 

Удалите то, что у вас есть, и добавьте это вместо этого, чтобы добавить пользовательскую кнопку:

 add_action('admin_head', 'add_my_shortcode_tooltip_button'); function add_my_shortcode_tooltip_button() { global $typenow; if ( !current_user_can('edit_posts') && !current_user_can('edit_pages') ) { return; } if( ! in_array( $typenow, array( 'post', 'page' ) ) ) return; if ( get_user_option('rich_editing') == 'true') { add_filter('mce_external_plugins', 'my_theme_tooltip_add_tinymce_plugin'); add_filter('mce_buttons', 'my_theme_tooltip_register_tinymce_plugin'); } } function my_theme_tooltip_add_tinymce_plugin($plugin_array) { $plugin_array['ttip_shortcode_button'] = get_stylesheet_directory_uri() . '/js/editor-tooltip-button.js'; return $plugin_array; } function my_theme_tooltip_register_tinymce_plugin($buttons) { array_push($buttons, "ttip_shortcode_button"); return $buttons; } 

Затем для создания самой кнопки создайте файл javascript в следующем месте:

 wp-content/themes/my-theme/js/editor-tooltip-button.js 

Внутри файла добавьте этот код:

 (function() { tinymce.PluginManager.add('ttip_shortcode_button', function( editor, url ) { editor.addButton( 'ttip_shortcode_button', { text: '[TOOLTIP]', icon: false, onclick: function() { editor.insertContent('[tooltips class="top_tooltip" title="Your Tooltip here"] Text here [/tooltip]'); } }); }); })(); 

Или сберегите головную боль и используйте плагин:

http://wordpress.org/plugins/better-shortcodes/screenshots/

http://wordpress.org/plugins/shortcodes-pro/screenshots/

http://wordpress.org/plugins/shortcodes-ui/screenshots/