我使用的是require_once(../../../../wp-load.php),这是文件的正确相对路径,但它不起作用。如果我使用的是wp-blog-header.php,这是可行的,并使我能够使用WP函数。对于为什么wp-load.php不能工作,有什么想法吗?
谢谢埃米尔
发布于 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中:
function hello() {
return "Hello World!";
}然后注册它:
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,您将看到:
"Hello World!"如果您返回一个数组或一个对象,它们将显示为等效的JSON。
现在,我们可以在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:
jQuery.ajax({
url: '/wp-json/yourname/v1/yourendpoint'
}).done(function( data ) {
alert( data );
// do stuff
});确保你打开了你的permalinks,记住返回数据而不是回显它,嘿,预告,你完成了!这就像任何其他REST一样,比如twitter、mailchimp和facebook。
加分:
GET获取某物,PUT或POST用于放置/推送某物,以及使用DELETE删除某事。/wp-json/wp/v2/posts上已经有了!与页面一样,您也可以创建它们。但是最重要的是,在文件夹中创建一个PHP文件,加载wp-load.php,然后直接调用它,这是一个巨大的安全问题,并且很容易崩溃。别干那事。
https://wordpress.stackexchange.com/questions/328388
复制相似问题