混合由noConflict(wordpress)引起的jQuery和php失败

时间:2014-11-30 21:57:16

标签: javascript php jquery wordpress

我想在wordpress中混合使用jQuery和php。

这是我目前的代码:

function theme_output($url) {
echo "<script language='text/javascript'>
    jQuery(function($) {
        var $products,
        $current_product = 'default';

        // List all the products here

        $products = {
    ";
        $themes = array('cerulean', 'cosmo', 'cyborg', 'darkly', 'flatly', 'journal', 'lumen', 'paper', 'readable', 'sandstone', 'simplex', 'slate', 'spacelab', 'superhero', 'united', 'yeti');
        foreach ($themes as $theme) {
            echo 
                $theme." : {
                    name     : '".ucfirst($theme)."',
                    tag      : 'phpBB',
                    img      : '".css_file($theme)."',
                    url      : '".$url."?theme=".$theme."',
                    purchase : 'http://www.google.de',
                },";
        };
echo "
    };
});
    </script>";
};

所以有一个&#34;标题&#34;在jquery / javascript中然后是一个foreach php部分,至少是一个jquery&#34; footer&#34;一部分。

问题是,wordpress没有冲突(我猜这就是原因),删除所有$变量。

这是输出: enter image description here

有人可以帮我解决这个问题吗?

谢谢

2 个答案:

答案 0 :(得分:1)

解决问题的一种方法是将foreach部分放入自己的函数中。 你也应该改变&#34;而且&#39;。

像这样:

function theme_output($url) {
echo '
    <script type="text/javascript">
            var $products,
            $current_product = "default";

            // List all the products here

            $products = {
';

funct2($url);

echo '
            };
    </script>';
};

function func2($url) {
    $themes = array('cerulean', 'cosmo', 'cyborg', 'darkly', 'flatly', 'journal', 'lumen', 'paper', 'readable', 'sandstone', 'simplex', 'slate', 'spacelab', 'superhero', 'united', 'yeti');
    foreach ($themes as $theme) {
        echo $theme.' : {
                name     : "'.ucfirst($theme).'",
                tag      : "phpBB",
                img      : "'.css_file($theme).'",
                url      : "'.$url.'?theme='.$theme.'",
                purchase : "http://www.google.de",
            },

        ';
    };
}

答案 1 :(得分:0)

Wordpress使用jQuery代替$

尝试用jQuery替换所有$