web-dev-qa-db-ja.com

TinyMCEが自分のHTMLエンティティを文字に変換しないようにするにはどうすればよいですか?

問題は次のとおりです。サービスマーク(℠)のHTMLエンティティコードをエディタのHTMLビューに貼り付けます。 「ビジュアル」タブに切り替えるとすぐに、私のエンティティコードは 実際のサービスマーク文字になります (対応するUTF-8文字か何かを推測しますか?文字エンコーディングからはわかりません... )私はこれが欲しくない - 私はそれが実体参照として残ることを望みます。

TinyMCEがこれをするのを止めるために私が変更できるある種の設定はありますか?インターネットを読んで私が理解しているのは、これはデフォルトの動作ではないということです - TinyMCEは実際には反対のことをし、文字をその実体に変換するべきです。それで、これはWordPressのバージョンのTinyMCEに特有のものですか?

4
MathSmath

このページ に従って、tiny_mce_before_initフィルタを使用し、エンティティのエンコーディングがnamedに設定されていることを確認してから、エンティティ配列に任意の特殊文字を追加します。

5
fdsa

ありがとう、fdsa!

後世のために、これが私が使った実際のコードです。著作権、登録済み、商標、サービスマーク、およびユーロが許可されているエンティティの配列に追加されます。それらが本当に一般的であるので、私はこれらのうちのいくつかがなぜデフォルトでそこにないのかについて混乱しています。しかし、いずれにせよ、これは動作します:

// Custom configuration for TinyMCE
function wpsx_54398_configure_tiny_mce( $initArray ) {

    // Add some common entities to the default array (copy, reg, trade, service mark, euro)
    // The odd entires are the entity *number*, the even entries are the entity *name*. If the entity has no name,
    // use the number, prefixed with a hash (for example, the service mark is "8480,#8480").
    $initArray['entities'] = $initArray['entities'] . ',169,copy,174,reg,8482,trade,8480,#8480,8364,euro';

    return $initArray;

}
add_filter('tiny_mce_before_init', 'wpsx_54398_configure_tiny_mce');
4
MathSmath