私のワードプレスのテーマでは、私はワードプレスに含まれているtinymceスクリプトを利用するテキストエリアを持つカスタムオプションパネルを持っています。
私が最新版のwordpress(3.2)にアップグレードするまで、これはうまくいきました。今でもエディタは動作しますが、コードを保存すると段落タグと改行タグがすべて削除されます。テキストをエディタに入力すると、見栄えがよくなり、プレビューにすべての改行が表示されますが、一度保存するとそれらはすべて消えます。他のタグ(b、img、a)は正常に機能しているようです。
これはwordpressの問題になるかもしれませんが、一方でwordpressのアップグレードにはTinymceの最新版と最新版も含まれていたので、それが問題を引き起こしているのかもしれません。
Tinymceエディタを無効にして標準のテキストエリアを使用すると、すべてのタグと改行が問題なく保存されます。
編集:それはうまくいった。保存する前に自分の出力値をwpautop()でラップする必要がありました。だから今私の値はwpautop($ output [$ option_array ['id']])です。
Tinymceエディタを起動するために使用しているコードは次のとおりです。
<?php
wp_tiny_mce( false , // true makes the editor "teeny"
array(
'theme' => 'advanced',
'skin' => 'default',
'theme_advanced_resizing' => 'false',
'theme_advanced_path' => 'false',
'theme_advanced_buttons2' => '',
'theme_advanced_buttons1' => 'code,bold,italic,underline,|,justifyleft,justifycenter,justifyright,forecolor,fontsizeselect,link,unlink,image',
'width' => '650px',
'media_strict' => 'false',
'valid_elements' => '*',
'extended_valid_elements' => '*',
)
);
?>
以下の構成パラメーターのいずれかを使用する必要があります。
// Don't remove line breaks
'remove_linebreaks' => false;
// Convert newline characters to BR tags
'convert_newlines_to_brs' => true;
WordPressは$init
引数配列をTinyMCEに渡し、TinyMCEはこれらの各パラメータに反対の値を設定します。
それらをあなたのwp_tiny_mce()
引数配列に直接渡すことができると思いますが、私は試していません。 TinyMCEの$init
配列のカスタムフィルタのための配列パラメータとしてそれらを渡します。
私は完全なエディタをロードしませんが、どのTinyMCEプラグインがロードされるかを制御するのはトリックです。例えば、私の目的のために私は私が追加したのでペーストプラグインだけが必要です。
'plugins' => 'paste'
配列に。
どのプラグインが原因でpタグとbrタグが削除されるのかはわかりませんが、試行錯誤したり、プラグインのコードを掘ったりすることで、どれを含めないかを見つけることができます。これがデフォルトで読み込まれるプラグインです。
'inlinepopups', 'spellchecker', 'tabfocus', 'paste', 'media', 'wordpress', 'wpfullscreen', 'wpeditimage', 'wpgallery', 'wplink', 'wpdialogs'
フロントエンドに値を表示するときは、フィルタ 'the_content'を通してそれを実行します。テキスト入力の内容を準備する前に呼び出さなければならない関数もあります。