やわらかしかっけい

なんでもすぐに忘れてしまう自分のために

カスタムフィールド内のWYSIWYGエディターの見出しを制限したかったが、できなかった

カスタムフィールドのプラグインとして、
現在はSmart Custam Fields を使っている。
b-risk.jp


WYSIWYGエディターの項目も作れるんだけど、
そのエディターの中の「見出し」を制限したかった。

(デフォルトだと「段落」「見出し1~6」「整形済みテキスト」から選択できる。)

失敗 その1

functions.phpにこれを書く

<?php
add_filter( 'tiny_mce_before_init', 'custom_tiny_mce_formats' );
function custom_tiny_mce_formats( $settings ){
  $settings[ 'block_formats' ] = '段落=p;見出し1=h1;見出し2=h2;';
  return $settings;
}
?>

反映されず。

失敗 その2

テーマフォルダ内に custom_editor_style.css を作成してあれこれ書いた上で、
functions.phpにこれを書く。

<?php
function my_editor_style_setup() {
    add_theme_support( 'editor-styles' );
    add_editor_style( 'custom_editor_style.css' );
 }
add_action( 'after_setup_theme', 'my_editor_style_setup' );
?>

反映されず

失敗 その3

止むを得ず、苦肉の策として
functions.phpにこれを書く。

<?php
function custom_edit_newpost_delete($hook) {
	if($hook == 'edit.php' || $hook == 'post.php'){
     echo '<style>#mceu_123,#mceu_124,#mceu_125,#mceu_126,#mceu_127{display:none;}</style>';
	}
}
add_action('admin_enqueue_scripts', 'custom_edit_newpost_delete');
?>

これで「見出し3~6」「整形済みテキスト」を見えなくすることには、ひとまず成功した
かのように思われたが、しかし!

項目ごとに割り当てられるid、なんと記事ごとに生成されるようなのだ。

別の記事を見たら、見出し1= #mceu_98, 見出し2= #mceu_99 になっていた。

なので、非表示に成功したのは、該当する1記事だけだった。

ダメだった。つらい。

 
 


ところで「WYSIWYG」って、「What You See Is What You Get」の略らしい。
ウィジウィグって読むとか。知らなかった。
脳内でも特に音で読んでなかったから、いつまでも文字列が覚えられなかった。
一人っきりで適当に仕事してると、こういうことがよくある


参考
yumegori.com