首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wp-load.php不起作用

wp-load.php不起作用
EN

WordPress Development用户
提问于 2019-02-11 16:15:06
回答 1查看 2.1K关注 0票数 1

我使用的是require_once(../../../../wp-load.php),这是文件的正确相对路径,但它不起作用。如果我使用的是wp-blog-header.php,这是可行的,并使我能够使用WP函数。对于为什么wp-load.php不能工作,有什么想法吗?

谢谢埃米尔

EN

回答 1

WordPress Development用户

发布于 2019-02-12 21:49:32

您不需要加载wp-load.php,您可以构建一个使用javascript使用REST端点轮询的端点。

在您的插件或functions.php中,我们将创建一个示例端点,它将位于https://yoursite.com/wp-json/yourname/v1/yourendpoint,它将接受参数,并使用JSON片段进行答复,就像您从任何其他REST中所期望的那样。

这个API会说“!”。

要创建它,请将以下内容放入插件或functions.php中:

代码语言:javascript
复制
function hello() {
    return "Hello World!";
}

然后注册它:

代码语言:javascript
复制
add_action( 'rest_api_init', function () {
        register_rest_route( 'yourname/v1', '/yourendpoint/', array(
                'methods' => 'GET',
                'callback' => 'hello'
        ) );
} );

祝贺你!您有一个功能齐全的REST端点!尝试在浏览器中访问https://yoursite.com/wp-json/yourname/v1/yourendpoint,您将看到:

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

如果您返回一个数组或一个对象,它们将显示为等效的JSON。

现在,我们可以在javascript中这样调用它:

代码语言:javascript
复制
fetch('/wp-json/yourname/v1/yourendpoint')
  .then(function(response) { return response.json();})
  .then(function(data) {
    alert(data); // outputs Hello World!
    // do stuff
  });

或者,如果您不喜欢fetch而更喜欢jQuery:

代码语言:javascript
复制
jQuery.ajax({
    url: '/wp-json/yourname/v1/yourendpoint'
}).done(function( data ) {
    alert( data );
    // do stuff
});

确保你打开了你的permalinks,记住返回数据而不是回显它,嘿,预告,你完成了!这就像任何其他REST一样,比如twitter、mailchimp和facebook。

加分:

  • 在创建端点时,您可以传递额外的字段,告诉它谁可以访问它,采用哪些参数,它将为您记录所有内容,并进行所有检查,这样您就不必这样做了(而且它会正确地执行,因此您不必担心出错)
  • 您可以使用标准的HTTP方法,例如GET获取某物,PUTPOST用于放置/推送某物,以及使用DELETE删除某事。
  • 不要创建返回帖子列表的端点,WordPress在/wp-json/wp/v2/posts上已经有了!与页面一样,您也可以创建它们。

但是最重要的是,在文件夹中创建一个PHP文件,加载wp-load.php,然后直接调用它,这是一个巨大的安全问题,并且很容易崩溃。别干那事。

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

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

复制
相关文章

相似问题

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