Use ajax from function.php

时间:2018-07-31 作者:Omer

我正在尝试进行ajax调用,但出现了以下错误:

TypeError: $ is undefined
这是我的职责。php文件:

<?php

// Add custom Theme Functions here
// 

function gear_guide_product_view( $atts ) {
    $a = shortcode_atts( array(
        \'id\' => \'0\'
    ), $atts );
    wp_register_script( \'load_product_info\' , \'/wp-content/themes/theme-child/js/test.js\' , array( \'jquery\' ) );
    wp_enqueue_script( \'load_product_info\' );
    wp_localize_script( \'load_product_info\' , \'para\' , $atts);
}

add_shortcode( \'fsg\' , \'gear_guide_product_view\' );
这是ajax:

function load_product_info() {
    console.log(para.id);
    $.ajax({
        type: \'POST\',
        url: \'/wp-content/themes/flatsome-child/js/controllers/get_product_info.php\',
        data: para,
        dataType: \'json\',
        success: function (data) {
            console.log(data);
        }
    });
}
load_product_info();
我已经声明了jquery的使用,从我在google上读到的内容来看,这就是我进行ajax调用所需要的一切。

如果需要更多信息,请告诉我,我会尽力提供。

谢谢

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

正如米洛在评论中所说,jQuery在WordPress中处于无冲突模式。这样其他JS库也可以使用$character。。。

解决这个问题的一种方法是在JS文件的任何地方使用jQuery。

另一种方法是创建块并在其中定义$变量:

jQuery(function ($) {

    $.ajax(...); // here you can use $ since it is already defined and won’t cause conflicts

});

SO网友:Svetoslav Marinov

您正在为ajax端点使用非常特定的URL。当您更改主题时,您的功能将中断。请检查WP codex如何正确进行ajax调用,并将其挂接到WP\\U ajax操作中。

结束

相关推荐

WP无法将文件上传到媒体库,/wp-admin/async-pload.php 403被禁用

我在大量网站上搜索过这个问题,但我没有找到任何好的解决方案。这些问题在网络上似乎很常见。以下是详细信息。。。如果我试图在媒体库部分直接上传文件,Chrome控制台会显示两个对/wp admin/async upload的调用。php文件:第一个返回一个成功的200回复(文件已上载),第二个显示303禁止回复,因此不显示该文件。正在重新加载页面,我的图片就在那里。。。多大的迷雾啊!真正的问题是,当我试图在帖子上附加一个特色图片时:图书馆不会出现!弹出窗口,但加载程序继续旋转,没有显示图像。如果我尝试上载新图