我是WordPress插件开发的新手。我目前正在尝试开发一个附加计算器插件,其中包含API端点example.com/calc/add。如何将新的URL端点添加到我的WordPress安装中,以便插件可以接收“POST”请求(逗号分隔列表中的数字)并在添加数字后相应地返回数据?非常感谢你!
答案 0 :(得分:6)
您可以使用parse_request挂钩创建终点,下面是我的插件中的示例
// this example creates endpoint like http://emerico.in/api/v2
add_action('parse_request', 'endpoint', 0);
add_action('init', 'add_endpoint');
/**
* @param null
* @return null
* @description Create a independent endpoint
*/
function endpoint()
{
global $wp;
$endpoint_vars = $wp->query_vars;
// if endpoint
if ($wp->request == 'api/v2') {
// Your own function to process end pint
$this->processEndPoint($_REQUEST);
// After all redirect to home page
wp_redirect(home_url());
exit;
} elseif (isset($endpoint_vars['tracking']) && !empty($endpoint_vars['tracking'])) {
$request = [
'tracking_id' => $endpoint_vars['tracking']
];
$this->processEndPoint($request);
} elseif (isset($_GET['utm_source']) && !empty($_GET['utm_source'])){
$this->processGoogleTracking($_GET);
}
}
/**
* @param null
* @return null
* @description Create a permalink endpoint for projects tracking
*/
function add_endpoint()
{
add_rewrite_endpoint('tracking', EP_PERMALINK | EP_PAGES, true);
}
答案 1 :(得分:0)
这会像custom-endpoint
那样创建http://example.com/custom-endpoint
。
add_action('parse_request', 'register_endpoint', 0);
function register_endpoint() {
global $wp;
if ($wp->request == 'custom-endpoint') {
echo 'hello world'; // process anything here
exit;
}
}