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
}

Тоже не появляется кнопка. Подскажите, пожалуйста, в чем ошибка может быть?


Ответы (0 шт):