2

tinyMCE エディターのカスタム セットアップにフラッシュ ビデオを埋め込もうとしています。メインの WordPress とは別ですが、まだ wordpress の管理領域内にあります。

シンプルな youtube 埋め込みブロックからの出力コードは次のとおりです。

<p><img mce_src=\"../wp-content/themes/porcelain/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif\" src=\"../wp-content/themes/porcelain/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif\" width=\"560\" height=\"340\" style=\"\" class=\"mceItemFlash\" title=\"&quot;allowFullScreen&quot;:&quot;true&quot;,&quot;allowscriptaccess&quot;:&quot;always&quot;,&quot;src&quot;:&quot;http://www.youtube.com/v/26Ywp6vUQMY&amp;hl=en&amp;fs=1&amp;&quot;,&quot;allowfullscreen&quot;:&quot;true&quot;\"></p>

ご覧のとおり、引用符をエスケープしたくないときにエスケープしています...

どんな助けも大歓迎です。私はこれが男子生徒の間違いであることを知っています. 私はちょうどまっすぐに設定する必要があります。

ありがとう。

4

3 に答える 3

2

magic_quotesこれは、php の機能が有効になっているサーバー上で、SQL で使用する前にデータをエスケープするコードがある場合によく発生します (そうするべきです) 。この機能により、php はロード時に get および post データを自動的にエスケープします。その後、もう一度エスケープすると、問題が発生します-二重にエスケープされるため、エスケープされたデータがデータベースに入ります。

PHP は現在、この機能を非推奨にしています。彼らは、それが迷惑であり、節約できるよりも多くの苦痛を引き起こしていることに気付きました。静かに。私自身、これが有効になっているかどうかを検出し、有効である場合は実行の早い段階でそれを元に戻すコードを定期的に含めることになりました。

于 2009-07-16T22:37:57.470 に答える
1

$ _POSTを介してデータを転送している場合、magic_quotesが有効になっているとデータはエスケープされます(現在は非推奨であり、PHP 5.4以降から自動的に削除されます)。エスケープされている場合はstripslashes()を使用するだけで、少なくともtinymceを使用してワードプレスでHTMLがエスケープされる問題を修正できました。

于 2012-05-30T08:56:17.863 に答える
1

これは、「the_editor()」関数と「wp_editor()」関数を使用して発生しました。サーバーでマジッククォートが有効になっていないと思います。有効にしておらず、すべてをインストールしたからです。

いずれにせよ、私はストリップスラッシュを追加しました...どこにでも。

私が編集者に電話するとき:

<?php wp_editor(stripslashes($custom_text), 'custom_text'); ?>

POSTデータを保存する場合:

if ( isset($_REQUEST['custom_text']) ) {
    update_option('my_custom_text', esc_sql(stripslashes($_POST['custom_text'])));
    $updated = true;
}

そして、保存されたデータを取得すると、次のようになります。

$custom_text = apply_filters( 'the_content', stripslashes(get_option('my_custom_text')) );

別の方法があるかどうか知りたいのですが、これで修正されました。フィルターにはこれが組み込まれていると思っていたのですが、間違っていましたが、他に欠けているものはないのでしょうか。

于 2012-07-16T17:23:30.987 に答える