• はじめて投稿させて頂きます。

    phpとJavascriptの基本があまり理解できていないレベルですが、
    WPに関してのみ、php・Javascript共に、読めば理解できるレベルです。

    現在、オリジナルテーマのカスタマイズを行っており、
    色々と検索して試しているのですが、どうしても解決できず
    フォーラムを使わせて頂いております。

    説明不足の箇所があるかもしれませんが、
    その際は、ご指摘頂けますと助かります。

    ■質問内容

    ビジュアルエディタのオリジナルボタンを追加したのですが、
    どうしても「階層表示」にすることができません。

    プルダウンメニュー
     ボタン1
       ボタン1-1
       ボタン1-2
     ボタン2
     ボタン3

    現在、以下のような記述をし、

    プルダウンメニュー
     ボタン1
     ボタン2
     ボタン3

    のような形にはもってこれています。

    ●functions.phpへの記述内容

    if(is_admin() && current_user_can(‘edit_posts’) &&
    current_user_can(‘edit_pages’) && get_user_option(‘rich_editing’) == ‘true’) {
    add_filter(‘mce_external_plugins’, ‘my_mce_external_plugins’);
    add_filter(‘mce_buttons_3’, ‘my_mce_buttons’);
    }
    function my_mce_buttons($buttons) {
    array_push($buttons, “taglist”, “fontlist”);
    return $buttons;
    }
    function my_mce_external_plugins($plugin_array) {
    $plugin_array[‘addquicktags’] = get_template_directory_uri().’/js/editor_plugin.js’;
    return $plugin_array;
    }

    ●editor_plugin.jsへの記述内容

    tinymce.PluginManager.add(‘addquicktags’, function(editor) {

    var csMenuItems = [
    { text: ‘ボタン1’, data: ‘ボタン1のソース’},
    { text: ‘ボタン2’, data: ‘ボタン2のソース’},
    { text: ‘ボタン3’, data: ‘ボタン3のソース’},
    ];

    function insertTag(data) {
    editor.insertContent(data);
    }

    editor.addButton(‘taglist’, {
    type: ‘menubutton’,
    text: ‘プルダウンメニュー’,
    icon: false,
    menu: csMenuItems,
    onselect: function(e) {
    insertTag(e.control.settings.data);
    },
    });

    });

    また、<div class=”abc”><div class=”def”>文章</div></div>のように、
    複数のタグが混在するボタンを入れる予定のため、
    以下のようなソースも使うことができません。

    function wpb_mce_buttons_2($buttons) {
    array_unshift($buttons, ‘styleselect’);
    return $buttons;
    }
    add_filter(‘mce_buttons_3’, ‘wpb_mce_buttons_2’);

    function my_mce_before_init_insert_formats( $init_array ) {
    $style_formats = array (
    array(
    ‘title’ => ‘ボタン1’,
    ‘items’ => array(
    array( ‘title’ => ‘ボタン1-1’, ‘block’ => ‘div’),
    array( ‘title’ => ‘ボタン1-2’, ‘block’ => ‘div’),
    ),
    ),
    array( ‘title’ => ‘ボタン2’, ‘block’ => ‘div’),
    array( ‘title’ => ‘ボタン3’, ‘block’ => ‘div’),
    ),
    ),

    );
    $init_array[‘style_formats’] = json_encode( $style_formats );
    return $init_array;
    }
    add_filter( ‘tiny_mce_before_init’, ‘my_mce_before_init_insert_formats’ );

    1週間程調べて試しても、
    一向に解決する兆しが見えず、
    お力を貸して頂けますと助かります。

    恐れ入りますが、何卒宜しくお願いいたします。

トピック「ビジュアルエディタのカスタマイズ」には新たに返信することはできません。