使用WordPress RESTapi调用php文件,而不是POST或PAGE

时间:2020-11-20 作者:monkeyman905

我已经使用WordPress好几年了,我想建立一个WordPress实例并将其用于API调用。我以前从未使用过WordPress的RESTapi功能。我已经做了一些教程,可以调用页面和帖子。我不想调用页面或帖子,只想对文件执行post请求,然后运行一些逻辑。

我的项目目标是在其他人的网页上运行使用iFrame的视频,当用户点击播放该视频时,它将对API进行AJAX调用,并发布一些细节,如视频id、名称、在ect上观看的网站。我希望有一个逻辑,然后给拍摄该视频的客户发电子邮件。

我将使用后端创建与视频ID相关的用户数据库。

这是RESTapi的正确用法吗?我可以只调用一个文件而不是帖子和页面吗?或者我应该以另一种方式这样做吗?我不想要这个实例的前端。只有CMS和api调用。

1 个回复
最合适的回答,由SO网友:hrsetyono 整理而成

创建自定义API端点,并将逻辑从PHP文件移到其中

例如,下面的代码将在中创建端点/wp-json/my/v1/video/<id>

add_action( \'rest_api_init\', function() {
  register_rest_route( \'my/v1\', \'/video/(?P<id>\\d+)\', [
    \'methods\'             => \'GET\',
    \'callback\'            => \'get_video_data\',
    \'permission_callback\' => \'__return_true\',
  ] );
} );

function get_video_data( $params ) {
  $video_id = $params[\'id\'];

  // do something like calling the DB where your video data is stored
  // you can use custom post type to store the data
  
  return $video_id;
}