Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
集成Yii和Wordpress时Jquery不工作_Jquery_Wordpress_Jquery Ui_Yii_Cdata - Fatal编程技术网

集成Yii和Wordpress时Jquery不工作

集成Yii和Wordpress时Jquery不工作,jquery,wordpress,jquery-ui,yii,cdata,Jquery,Wordpress,Jquery Ui,Yii,Cdata,好的,所以我一直在尝试集成Yii(特别是())和Wordpress 我在遵循他的指示方面取得了重大进展 但当jquery介入时,我被卡住了。 Lightspeed webstore使用jquery ui对话框进行登录 在一个包含Yii内容的页面上(如主页),它的效果非常好。 但在任何没有Yii内容的页面上(如),它不会隐藏登录对话框,也不会在单击“登录”时弹出到中央屏幕 查看源代码,很明显,Yii在对话框html之前添加了带有CData的javascript。在没有Yii内容的页面上,这种情况

好的,所以我一直在尝试集成Yii(特别是())和Wordpress

我在遵循他的指示方面取得了重大进展

但当jquery介入时,我被卡住了。 Lightspeed webstore使用jquery ui对话框进行登录

在一个包含Yii内容的页面上(如主页),它的效果非常好。 但在任何没有Yii内容的页面上(如),它不会隐藏登录对话框,也不会在单击“登录”时弹出到中央屏幕

查看源代码,很明显,Yii在对话框html之前添加了带有CData的javascript。在没有Yii内容的页面上,这种情况不会发生。由于我还没有与Yii合作过很多,我不知道这是在哪里添加的

有什么想法吗


谢谢

这似乎不是最好的解决方案,但我确实让它发挥了作用。以下是我所做的:

复制了yii页面上生成的CData,并将其放入wp函数中:

function add_login_dialog()
{
echo '<script type="text/javascript" src="/assets/a9725a95/jui/js/jquery-ui.min.js"></script>';
echo "CDATA goes here";

if (Yii::app()->user->isGuest)
    {
        Yii::app()->controller->beginWidget('zii.widgets.jui.CJuiDialog',array(
            'id'=>'LoginForm',
            'options'=>array(
                'title'=>Yii::t('global','Login'),
                'autoOpen'=>false,
                'modal'=>'true',
                'width'=>'350',
                'height'=>'365',
                'resizable'=>false,
                'position'=>'center',
                'draggable'=>false,
            ),
        ));

        Yii::app()->controller->renderPartial('/site/_login',array('model'=>new LoginForm()));
        Yii::app()->controller->endWidget('zii.widgets.jui.CJuiDialog');}
add_action('wp_footer','add_login_dialog', 100);
函数添加登录对话框()
{
回声';
echo“CDATA就在这里”;
if(Yii::app()->user->isGuest)
{
Yii::app()->controller->beginWidget('zii.widgets.jui.cguidialog',数组(
'id'=>'LoginForm',
“选项”=>数组(
'title'=>Yii::t('global','Login'),
“自动打开”=>false,
“模态”=>“真”,
“宽度”=>“350”,
“高度”=>“365”,
“可调整大小”=>false,
“位置”=>“中心”,
“可拖动”=>错误,
),
));
Yii::app()->controller->renderPartial('/site/_login',array('model'=>new LoginForm());
Yii::app()->controller->endWidget('zii.widgets.jui.cjudialog');}
添加操作('wp\u页脚','add\u login\u dialog',100);
然后我还需要补充:

    if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);
function my_jquery_enqueue() {
 echo '<link rel="stylesheet" type="text/css" href="/assets/1f0ab574/css/bootstrap.css">';
 echo '<link rel="stylesheet" type="text/css" href="/assets/a9725a95/jui/css/base/jquery-ui.css">';
 echo '<script type="text/javascript" src="/assets/a9725a95/jquery.min.js"></script>';
 echo '<script type="text/javascript" src="/assets/a9725a95/jquery.yiiactiveform.js"></script>';
 echo '<script type="text/javascript" src="/assets/1f0ab574/js/bootstrap.js"></script>';
}
if(!is_admin())add_action(“wp_enqueue_scripts”,“my_jquery_enqueue”,11);
函数my\u jquery\u enqueue(){
回声';
回声';
回声';
回声';
回声';
}

如果您使用的是默认模板,您可以检查protected/views/layouts/main.php。通常,html标题信息(包括基于cdata的js文件加载)都设置在这里。是的,那里没有适合我的内容……在搜索了我发现的所有内容之后,我认为有什么不同。。最后,它调用processOutput来插入脚本和动态内容(如果可用)。"这显然是接受整个html页面代码作为变量,解析它,然后用适当的js将其吐回。我可以在wordpress页面上调用它,但据我所知,没有切实可行的方法将整个wp页面代码转换为变量…有吗?一定有更好的方法…我使用NLSClientScript来处理这有点像ajax问题。也许这可以帮助您找到更干净的解决方案?