您不需要加载wp-load.php
, 您可以使用REST API端点构建一个端点,以使用javascript进行轮询。
在插件中,或functions.php
, 我们将创建一个示例端点,它将位于https://yoursite.com/wp-json/yourname/v1/yourendpoint
, 它将接收参数,并用JSON片段进行回复,就像您从任何其他REST API中所期望的那样。
此API将显示“Hello World!”。
要创建它,请将以下内容放入插件或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 API端点!尝试访问
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
});
确保已打开永久链接,记住返回数据而不是回显数据,嘿,普雷斯托,完成了!这就像其他REST API一样,例如twitter、mailchimp和facebook的REST API。
奖励积分:
创建端点时,您可以传递额外的字段,告诉它谁可以访问它,以及您使用了哪些参数,它会为您记录所有内容并进行所有检查,这样您就不必(而且它会正确执行,所以您不必担心出错)
您可以使用标准的HTTP方法,例如。GET
为了得到一些东西,PUT
或POST
放置/推动某物DELETE
要删除某些内容,请不要创建端点以返回帖子列表,WordPress已经在/wp-json/wp/v2/posts
! 对于页面等,您也可以创建它们,但最重要的是,在文件夹中创建一个PHP文件,加载wp-load.php
, 然后直接调用它,这是一个巨大的安全问题,很容易中断。不要那样做。