0

サイクル プラグインを使用した jQuery スライドショーを備えた Theme Forest から購入したカスタム WordPress テーマで友人を支援しています。すべてのページで問題なく動作します。私はコードを見て、私が理解できる唯一のことは、ブログページでは、すべての " および ' 文字の前にバックスラッシュを追加することにより、コードを誤って処理し、javascript でそれを壊していることです。 page.php ファイルと single.php ファイルの両方が次のコードを参照しています。

    <div id="slide">
    <?php 
        if ( get_post_meta($post->ID,'head', true) ) { 
            echo get_post_meta($post->ID,'head', true);
        } elseif ( get_post_meta($post->post_parent,'head', true) ) {
                echo get_post_meta($post->post_parent,'head', true);
        } else { 
            echo get_option('retro_headimage');
        }           
    ?>
    </div>
    <script type="text/javascript">
        $('#slide').cycle('fade');
    </script>

次のように出力されます。

<div id="slide">
<img src="/wp-content/uploads/2009/11/over-the-hill.jpg" alt="" />
</div>
<script type="text/javascript">
$('#slide').cycle('fade');
</script>

「head」の post_meta が設定されていない投稿ページでは、これが出力される html です。

<div id="slide">
<img src=\"/wp-content/uploads/2009/11/over-the-hill.jpg\" alt=\"\" />
</div>
<script type="text/javascript">
$('#slide').cycle('fade');
</script>

これはjavascriptを壊します。そのため、ダッシュボードのテーマ オプション ページで設定されている「retro_headimage」のオプションがエコーされていることに気付きました。問題は、そのテーマ オプション ページに移動し、保存時に画像の正しいコードを再入力するたびに、バックスラッシュが再表示されることです。誰でも助けることができますか?

4

2 に答える 2

1

私は PHP で作業していませんが、テーマ オプション ページが add_option/update_option ( http://codex.wordpress.org/Function_Reference/add_option ) を呼び出して、設定されている値をエスケープするように見えます。引用符をエスケープせずに値を設定する方法があるかどうかを確認する必要があります。

それが最終的な答えではないと思ったので、それがあなたを正しい方向に向けてくれることを願っています.

于 2010-08-12T05:09:01.177 に答える
0

私は自分の質問に答えましたが、それは簡単でした! カスタム テーマの管理ページを調べて関数を編集し、引用符をエスケープせずに値を設定する方法を理解する代わりに、上記の最初のファイルを編集し、"echo get_option('retro_headimage');" を変更しました。セクションを使用して、基本的なイメージ タグをエコーし​​ます。問題が解決しました!:)

于 2010-08-12T14:56:09.267 に答える