最近やたらとWordPressの投稿エディタをカスタマイズしています。
投稿エディタにオリジナルのボタンを追加する方法やクイックタグを追加する方法を紹介しましたが、今回はもともとあるボタンを削除する方法を紹介したいと思います。
ビジュアルエディタからボタンを削除する方法
ビジュアルエディタからボタンを削除するには、以下のようなコードをfunctions.phpに追加します。
function tinymce_delete_buttons( $array ) { $array = array_diff($array, array('fullscreen')); return $array; } add_filter( 'mce_buttons', 'tinymce_delete_buttons' );
上記コードでは、集中執筆モードのボタンを削除しています。2行目の配列にarray(‘fullscreen’)のように削除したいボタンの名前を入れます。
削除できるボタンの種類はwp-includes配下にあるclass-wp-editor.phpを参考にします。403行目くらいに以下のようなコードがあるのですが、ここに投稿エディタのボタンの内容が記述されています。
if ( $set['teeny'] ) { $mce_buttons = apply_filters( 'teeny_mce_buttons', array('bold', 'italic', 'underline', 'blockquote', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'), $editor_id ); $mce_buttons_2 = $mce_buttons_3 = $mce_buttons_4 = array(); } else { $mce_buttons = apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', 'bullist', 'numlist', 'blockquote', 'justifyleft', 'justifycenter', 'justifyright', 'link', 'unlink', 'wp_more', 'spellchecker', 'fullscreen', 'wp_adv' ), $editor_id); $mce_buttons_2 = apply_filters('mce_buttons_2', array( 'formatselect', 'underline', 'justifyfull', 'forecolor', 'pastetext', 'pasteword', 'removeformat', 'charmap', 'outdent', 'indent', 'undo', 'redo', 'wp_help' ), $editor_id); $mce_buttons_3 = apply_filters('mce_buttons_3', array(), $editor_id); $mce_buttons_4 = apply_filters('mce_buttons_4', array(), $editor_id); }
class-wp-editor.phpを直接編集してもいいのですが、コアファイルなのでWordPressのアップグレード時にファイルが上書きされる可能性があります。そのため、functions.phpで制御した方がいいでしょう。
ビジュアルエディタからボタンを削除する別の方法
NxWorldさんの記事では、以下の方法が紹介されていました。
add_filter( 'mce_buttons', 'remove_mce_buttons' ); function remove_mce_buttons( $buttons ) { $remove = array( 'formatselect', // フォーマット 'bold', // 太字 'italic', // イタリック 'bullist', // 番号なしリスト 'numlist', // 番号付きリスト 'blockquote', // 引用 'alignleft', // 左寄せ 'aligncenter', // 中央揃え 'alignright', // 右寄せ 'link', // リンクの挿入/編集 'unlink', // リンクの削除 'wp_more', // 「続きを読む」タグを挿入 'wp_adv', // ツールバー切り替え 'dfw' // 集中執筆モード ); return array_diff( $buttons, $remove ); } add_filter( 'mce_buttons_2', 'remove_mce_buttons_2' ); function remove_mce_buttons_2( $buttons ) { $remove = array( 'strikethrough', // 打ち消し 'hr', // 横ライン 'forecolor', // テキスト色 'pastetext', // テキストとしてペースト 'removeformat', // 書式設定をクリア 'charmap', // 特殊文字 'outdent', // インデントを減らす 'indent', // インデントを増やす 'undo', // 取り消し 'redo', // やり直し 'wp_help' // キーボードショートカット ); return array_diff( $buttons, $remove ); }
こちらの方がわかりやすいですね。
テキストエディタからボタンを削除する方法
テキストエディタからボタンを削除するには、functions.phpに以下を追加します。
function remove_html_editor_buttons( $qt_init ) { $remove = array( 'strong', // b 'em', // i 'link', // link 'block', // b-quote 'del', // del 'ins', // ins 'img', // img 'ul', // ul 'ol', // ol 'li', // li 'code', // code 'more', // more 'close', // タグを閉じる 'dfw', // 集中執筆モード ); $qt_init['buttons'] = explode( ',', $qt_init['buttons'] ); $qt_init['buttons'] = array_diff( $qt_init['buttons'], $remove ); $qt_init['buttons'] = implode( ',', $qt_init['buttons'] ); return $qt_init; } add_filter( 'quicktags_settings', 'remove_html_editor_buttons' );
削除したいボタンのみを指定してください。
あとがき
要らないボタンは、削除しておけば投稿エディタがスッキリすると思います。使わないボタンがある場合は、削除してもいいですね。