Cocoon のフィルターフックでビジュアルエディターをカスタマイズ
独自の「スタイル」を追加
WordPress テーマ Cocoon のビジュアルエディターの「スタイル」に、独自のスタイルを追加できるフィルターフックがあります。
それが tinymce_style_formats
です。「スタイル」の追加だけではなく、既存の全ての「スタイル」の書き換えも可能です。
例として、下記の 2 グループ・計 4 つのスタイルを追加してみます。
- 背景色が紫色のグラデーションのボックス
- 背景色が黄色のグラデーションのボックス
- 最初の 1 文字目が大きく、かつ背景色がオレンジ
- 最初の 1 文字目が大きく、かつ背景色が緑
完成図は、こんな感じです。
カスタマイズは、たったの 2 ステップ。まず、子テーマの functions.php に下記のコードを追加します。
add_filter( 'tinymce_style_formats', function( $style_formats ) { // 背景がグラデーションのボックス $style_formats[] = array( 'title' => 'ボックス(グラデーション)', 'items' => array( array( 'title' => '紫', 'block' => 'div', 'classes' => 'purple-gradation gradation-box' ), array( 'title' => '黄', 'block' => 'div', 'classes' => 'yellow-gradation gradation-box' ) ) ); // 最初の 1 文字目が大きい $style_formats[] = array( 'title' => '大きな1文字目', 'items' => array( array( 'title' => 'オレンジ', 'inline' => 'span', 'classes' => 'first-letter-orange first-letter' ), array( 'title' => '緑', 'inline' => 'span', 'classes' => 'first-letter-green first-letter' ) ) ); return $style_formats; });
'block' => 'div'
と 'inline' => 'span'
がポイント。<div>
や <p>
などのブロック要素は、block
を使います。<span>
などのインライン要素は、inline
を使います。
そして、子テーマの style.css に CSS を追加します。
/* 背景がグラデーションのボックス */ .gradation-box { margin: 40px 0; padding: 16px 24px; } .purple-gradation { background: linear-gradient( 32deg, #6002ee, #8600ee, #a400ee, #be00ee, #d602ee ); color: #fff; } .yellow-gradation { background: linear-gradient( 32deg, #ffeb3b, #eff035, #ddf532, #c8fa34, #b1ff3b ); } /* 最初の 1 文字目が大きい */ .first-letter { align-items: center; border-radius: 50%; display: inline-flex; font-size: 34px; height: 56px; justify-content: center; margin-right: 4px; width: 56px; } .first-letter-orange { background: #ff8d00; } .first-letter-green { background: #90ee02; }
これで終わりです。
ビジュアルエディターで確認してみます。WordPress 5.0 で採用された Gutenberg の場合は、「スタイル」は下記の手順で使えます。
- 「ブロック追加」を選択
- 「フォーマット」を選択
- 「クラシック」を選択
「スタイル」をクリックすれば、1 番下に「ボックス(グラデーション)」と「大きな1文字目」が追加されているはずです。
また、「ボックス(グラデーション)」には「紫」と「黄」が追加されます。

「大きな1文字目」には「オレンジ」と「緑」が追加されます。

それぞれ使ってみると、独自のスタイルのできあがりです。

好きなだけ、独自の「スタイル」を追加できます。
独自の仕様に変更
Cocoon のフィルターフックには、ビジュアルエディターの TinyMCE(WordPress 5.0 からはクラシック) を独自の仕様にできるtinymce_init_array
もあります。
大雑把に言えば、WordPress のデフォルトで備わっているフィルターフックの tiny_mce_before_init
と同じような使い方ができます。
例として、フォーマットに <div>
を追加し、かつ <h1>
の見出しを削除してみます。
add_filter( 'tinymce_init_array', function( $init_array ) { // フォーマットに div を追加、かつ h1 の見出しを削除 $init_array['block_formats'] = '段落=p; グループ=div; 見出し2=h2; 見出し3=h3; 見出し4=h4; 見出し5=h5; 見出し6=h6; 整形済みテキスト=pre'; return $init_array; });
参考:WordPressのビジュアルエディタをカスタマイズする | webOpixel
すると、フォーマットに <div>
を挿入する「グループ」が追加されます。

また、「見出し1」がなくなり、<h1>
が挿入できなくなります。
よく使うタグを予め登録しておけば、快適に文章が書けます。使いたくないタグを削除しておけば、間違って使うことを防げます。
投稿者が複数人いるサイトで、このフィルターフックを使う機会が多いかもしれません。