-2

解析エラー: 構文エラー、予期しない '' (T_ENCAPSED_AND_WHITESPACE)、識別子 (T_STRING) または変数 (T_VARIABLE) または数値 (T_NUM_STRING) が必要です ...

これは私が得ているエラーです

<?php
      function my_custom_js() {
        echo " <script>" ;
        echo " jQuery(document).ready(function(){ 

    jQuery('#secondary-front .first h3').addClass('
     <?php $options = get_option('mytheme_theme_options'); 
     if(!empty($options['first_widget_icon'])) echo $options['first_widget_icon']?>    ');

    jQuery('#secondary-front .second h3').addClass('<?php $options =        get_option('mytheme_theme_options');
    if (!empty($options['second_widget_icon'])) echo $options['second_widget_icon'];?>');

    jQuery('#secondary-front .third h3').addClass('<?php $options =     get_option('mytheme_theme_options');
    if (!empty($options['third_widget_icon'])) echo $options['third_widget_icon'];?>');
    });  

    ";  
    echo "</script> ";
    }
    add_action('wp_head', 'my_custom_js');
?>

このコードを正しくエスケープできません。php > jquery > php があります

4

1 に答える 1

2

問題は、引用符(")が両側で重くならないことです。そうは言っても、私が問題を調査しに行ったとき、あなたのコードにもっと悪いことに気づいたので、私はあなたのためにそれを完全に書き直しました:

<?php

    function my_custom_js() {
        $options = get_option('mytheme_theme_options'); 

        echo "<script>
            jQuery(document).ready(function(){
                jQuery('#secondary-front .first h3').addClass('" . ($options['first_widget_icon'] ?: NULL) . "');
                jQuery('#secondary-front .second h3').addClass('" . ($options['second_widget_icon'] ?: NULL) . "');
                jQuery('#secondary-front .third h3').addClass('" . ($options['third_widget_icon'] ?: NULL) . "');
            });
        </script>";
    }

    add_action('wp_head', 'my_custom_js');

?>

私がしたことの1つは、一番上に移動$options = get_option('mytheme_theme_options');します。また、これに対する繰り返しの呼び出しを削除しました。また、これには、三項演算子echoを巧みに使用して、すべてを1つのステートメントで作成できるというノックオン効果があります。

echo ($something ?: NULL);$ somethingが存在する場合はそれをエコーし​​、そうでない場合は何もエコーしないことを意味します。

省略形で三項演算子を使用するには、?:PHP>=5.3.0が必要です。

これより下のバージョンの場合は、中央部分に入力するだけです。

// PHP >= 5.3.0
($options['first_widget_icon'] ?: NULL)

// PHP < 5.3.0
($options['first_widget_icon'] ? $options['first_widget_icon'] : NULL)

もちろん、コードを好みに合わせて調整する必要があるかもしれませんが、それは改善の基礎となるはずです。

于 2013-03-13T07:22:09.677 に答える