web-dev-qa-db-ja.com

TinyMCEに固有のクラスまたはID情報を追加する

ボディクラス情報が公開ページに追加されるのと同じ方法で、一意のボディクラスIDをエディタに適用する方法はありますか?

Add_editor_style()関数を使用して、公開されたページを反映するようにエディタのスタイルをレンダリングします。しかし、スタイルが標準のページルールから外れているページがいくつかあるので、それらの例外的なスタイルルールのいくつかをエディタに含めることができればと思います。

4
Marc P

必要に応じてTinyMCEボディクラスをフィルタリングして追加または変更できます。これは、投稿タイプなどの事前設定された文字列です。そのため、最も簡単な方法は、追加のクラスに(スペースを1つ追加して)追加することです。

<?php
function wpse_128380_tinymce_body_class( $mce ) {
    // you could do things here to detect whatever you need
    // and use those for the additional classes.
    // be safe and use sanitize_html_class or similar if generated.

    // example: use the post ID when editing a post
    if ( $post = get_post() ) {
        $mce['body_class'] .= ' ' . sanitize_html_class( $post->ID );
    }

    $mce['body_class'] .= ' custom-class another-custom-class etc';

    return $mce;
}
add_filter( 'tiny_mce_before_init', 'wpse_128380_tinymce_body_class' );
// if you're using the "teeny" version of the editor,
// it fires the teeny_mce_before_init filter instead.
9
helenhousandi