首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery Ajax不使用ACF字段加载页面

jQuery Ajax不使用ACF字段加载页面
EN

WordPress Development用户
提问于 2020-09-15 10:44:56
回答 1查看 332关注 0票数 0

我使用以下jQuery代码在单击时将内容从模板部件加载到另一个模板部件。如果没有ACF PHP标记,它就能工作。但是,当我在中添加这些标记时,它会引发一个500 (内部服务器错误)错误。有人想办法解决这个问题吗?

代码语言:javascript
复制
    var baseUrl = "http://projectname:8888/wp-content/themes/custom-theme"

    $(".cross__functional").click(function (e) {
        e.preventDefault();
        console.log('cross functional Clicked')
        $("#keContent").load(baseUrl + "/template-parts/components/filename.php");
    });
EN

回答 1

WordPress Development用户

发布于 2020-09-15 11:57:33

您正在直接调用主题中的PHP文件,这就是您有问题的原因。因为WordPress没有处理请求,所以您的文件没有加载任何WordPress,也没有加载插件。这种方法还存在许多安全问题。

如果需要发出AJAX请求,请将其设置为REST端点。

例如,这里我注册了一个返回Hello World的端点:

代码语言:javascript
复制
add_action( 'rest_api_init', function () {
    register_rest_route( 'jeno/v1', '/helloworld/', [ 'callback' => 'helloworld' ] );
} );

function jeno_helloworld( $data ) {
    return "Hello World";
}

在将其放置在插件或functions.php中之后,我可以访问这个URL以获得响应:

http://example.com/wp-json/jeno/v1/helloworld

代码语言:javascript
复制
"Hello World"

下面是一段代码

代码语言:javascript
复制
jQuery.ajax({
    url: "https://example.com/wp-json/jeno/v1/helloworld"
}).done(function( data ) {
    // do something with data
    console.log( data ); // prints hello world in the dev tool console
});

如果需要任何参数,请使用$data变量。REST以JSON的形式返回它们的响应,因此您可以在javascript中解码JSON以获得更复杂的结果。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/374892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档