-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');

?>

我做过的一件事是移到$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 回答