現在の投稿が属するカテゴリに基づいて、editor-style.css
にスタイルを追加します。
したがって、私はpostクラスをget_post_class()
を使ってTinyMCE iframeの本体に追加したいと思います。
この質問 を見たことがありますが、それはJavaScriptを介してクラスを追加することに関するもので、PHPを介して行う必要があります。そのため、get_post_class()
を使用できます。 TinyMCE iframeに対応していないため、admin_body_class
フィルタも使用できません。
TinyMCEのiframeに投稿のクラスを追加するにはどうすればいいですか?
フィルタはtiny_mce_before_init
です。これを使って、TinyMCEの 'init_array'にフックしてボディクラスを追加することができます。
add_filter( 'tiny_mce_before_init', 'wpse_235194_tiny_mce_classes' );
function wpse_235194_tiny_mce_classes( $init_array ){
global $post;
if( is_a( $post, 'WP_Post' ) ){
$init_array['body_class'] .= ' ' . join( ' ', get_post_class( '', $post->ID ) );
}
return $init_array;
}
TinyMCEで要求されているように配列から文字列に変換するためにスペースを使ってpostクラスに参加しています。また、TinyMCEを他の場所で使用している場合はエラーを避けるために実際に有効なpostオブジェクトがあることも確認します。 (ウィジェットなどで).