WP: Создание кнопки для TinyMCE
Есть необходимость создать кнопку для редактора WP, которая будет добавлять параграф с нужным классом.
Написал вот такой код в functions.php.
function add_big_paragraph_button() {
if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') )
return;
add_filter('mce_buttons', 'register_big_paragraph_button');
add_filter('mce_external_plugins', 'add_big_paragraph_plugin');
}
add_action('admin_init', 'add_big_paragraph_button');
function register_big_paragraph_button($buttons) {
$index = array_search('close', $buttons);
if ($index !== false) {
// Вставляем кнопку "big_paragraph" после нее
array_splice($buttons, $index + 1, 0, 'big_paragraph');
} else {
array_push($buttons, 'big_paragraph');
}
return $buttons;
}
function add_big_paragraph_plugin($plugin_array) {
$plugin_array['big_paragraph'] = get_template_directory_uri() . '/wp-assets/js/tinyMCE_buttons.js';
return $plugin_array;
}
Также для JS
(function() {
tinymce.PluginManager.add('big_paragraph', function( editor, url ) {
editor.addButton('big_paragraph', {
text: 'Big Paragraph',
icon: false,
onclick: function() {
var content = '<p class="big"></p>';
editor.insertContent(content);
var selection = editor.selection;
var node = selection.getNode();
var offset = 0;
if (node && node.nodeName === 'P' && node.classList.contains('big')) {
offset = 1;
}
selection.setCursorLocation(node, offset);
}
});
});
})();
Но кнопка не появляется почему-то.
Также пробовал реализовать через Quicktags API.
function add_big_paragraph_button() {
if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') )
return;
add_action('admin_init', 'add_big_paragraph_quicktag');
}
function add_big_paragraph_quicktag() {
?>
<script type="text/javascript">
QTags.addButton('big_paragraph', 'Big Paragraph', '<p class="big">', '</p>');
</script>
<?php
}
Тоже не появляется кнопка. Подскажите, пожалуйста, в чем ошибка может быть?
