WYSIWYG(TinyMCE)エディターにカスタムスタイルを追加するためのチュートリアルをいくつか読みました。それらのどれもWordpressの最新バージョンでは動作しないようです。私はv3.3.2を使用しています。コーデックスからの指示は機能しますが、限られた方法で...
注:100%明確にするために、作成者がカスタムスタイルをテキストに適用するために使用できる[スタイル]ドロップダウンを追加しようとしています。(私の質問を、editor-style.cssを使用してエディター自体のスタイルを設定する方法と混同しないでください...)
私はなんとかコードを機能させることができましたが、のコメントアウトされた行のみを使用しましたmy_mce_before_init()
。このバージョンの問題は、ジェネリックを使用してクラスを追加すること<span>
です。より強力なバージョンのコード(以下に示す)を使用しようとしていますが、何かが正しくありません。[スタイル]ドロップダウンボックスが表示されますが、空白です。クリックすると、最初の項目は「スタイル」と表示されますが、何もしません。アレイに何か問題があるのではないかと思います。うまくいけば、私よりも知識のある人が私をまっすぐにすることができます。
これが私のテーマのfunctions.phpの関連コードです...
ボタンを追加する方法は次のとおりです。
// Add the Style selectbox to the second row of MCE buttons
function my_mce_buttons_2($buttons)
{
array_unshift($buttons, 'styleselect');
return $buttons;
}
add_filter('mce_buttons_2', 'my_mce_buttons_2');
スタイルを追加する方法は次のとおりです(コメントを外すと機能します)。
//Define the actual styles that will be in the box
function my_mce_before_init($init_array)
{
// add classes using a ; separated values
//$init_array['theme_advanced_styles'] = "Section Head=section-head;Sub Section Head=sub-section-head";
$temp_array['theme_advanced_styles'] = array(
array(
'title' => 'Section Head',
'block' => 'h3',
'classes' => 'section-head'
),
array(
'title' => 'Sub Section Head',
'block' => 'h4',
'classes' => 'sub-section-head'
)
);
$styles_array = json_encode( $temp_array['theme_advanced_styles'] );
// THIS IS THE PROBLEM !!!! READ BELOW
$init_array['theme_advanced_styles'] = $styles_array;
return $init_array;
}
add_filter('tiny_mce_before_init', 'my_mce_before_init');
更新:私はそれを理解しました(以下の私の答えを参照してください)。下にスクロールする前に、上のコードでtheme_advanced_styles
、間違ったキーであることに注意してください。style_formats
私がやっている方法でカスタムスタイルを定義するときです。これはよくある間違いだと思います。