it-swarm-ja.com

カスタムスタイルなしでビジュアルエディタを読み込む

私はwp_editor()関数を使ってTinyMCEエディタのインスタンスをロードするプラグインを持っています。

ただし、エディタはカスタムスタイルの影響を受け、add_editor_style()関数によるテーマに似ています。コンテンツがフロントエンドでどのように見えるかをユーザーに知らせるのにこれは素晴らしいかもしれませんが、コンテンツはバックエンドにしか表示されないため、これは望ましくありません。

カスタムスタイルの影響を受けずにWordPressエディタのインスタンスを読み込む方法はありますか?

3
shea

@ s_ha_dumの解決法はカスタムプラグインページではうまく機能しますが、最初のエディタインスタンスが呼び出された後にポストエディタページでTinyMCEを使用すると失敗します。 。 TinyMCEは最初の実行時にのみカスタムスタイルをその設定に解析します。

1人の編集者のみのカスタムスタイルを削除する方法

静的メソッドのみを持つクラスで、抜粋ボックスをリッチエディタに置き換えたとしましょう。

wp_editor(
    self::unescape( $post->post_excerpt ),
    'excerpt', // $editor_id
    array (
    'textarea_rows' => 15
,   'media_buttons' => FALSE
,   'teeny'         => TRUE
,   'tinymce'       => TRUE
,   'first_init' => TRUE
    )
);

1つの特別なエディタIDのカスタムスタイルを削除するには、teeny_mce_before_init'teeny' => TRUEを設定している場合は、tiny_mce_before_initをフィルタリングできます。

_WP_Editors::editor_settings()を参照してください。

// For people who really REALLY know what they're doing with TinyMCE
// You can modify $mceInit to add, remove, change elements of the config before tinyMCE.init
// Setting "valid_elements", "invalid_elements" and "extended_valid_elements" can be done through this filter.
// Best is to use the default cleanup by not specifying valid_elements, as TinyMCE contains full set of XHTML 1.0.
if ( $set['teeny'] ) {
    $mceInit = apply_filters('teeny_mce_before_init', $mceInit, $editor_id);
} else {
    $mceInit = apply_filters('tiny_mce_before_init', $mceInit, $editor_id);
}

この例ではteeny_mce_before_initです、そして私達は簡単なヘルパーメソッドを必要とします:

public static function no_custom_css( $settings, $editor_id )
{
    'excerpt' === $editor_id and $settings['content_css'] = '';
    return $settings;
}

wp_editor()を呼び出す前に、これをコールバックとして登録します。

add_filter( 'teeny_mce_before_init', array ( __CLASS__, 'no_custom_css' ), 10, 2 );

それで全部です。私たちのIDを持つ編集者だけが今カスタムスタイルを取得しません。テスト不可能な副作用はありません。私たちのコードはあらゆる状況で他のコードと互換性があります。

enter image description here

4
fuxia

私はあなたが欲しいと思います remove_editor_stylesはエディタスタイルのテーマサポート を削除するようです。

remove_editor_styles();

エディタが起動する前にプラグインのバックエンドページでそれを実行すれば、問題は解決するはずです。あなたがエディタ関数に渡すことができるパラメータ、またはフックがあるかもしれません、しかし影響を受けたページのためのエディタスタイルサポートを取り除くことは私の頭に浮かぶ最初のものでした。

テストされていないし、私はエディタスタイルについてはあまり行っていませんが、それはかなり簡単なようです。

3
s_ha_dum