如何创建自定义api端点?

End*_*gon 1 wordpress

我是WordPress插件开发的新手.我目前正在尝试开发一个附加计算器插件,其中包含API端点example.com/calc/add.如何将新的URL端点添加到我的WordPress安装中,以便插件可以接收"POST"请求(逗号分隔列表中的数字)并在添加数字后相应地返回数据?非常感谢!

Udi*_*wat 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);

}
Run Code Online (Sandbox Code Playgroud)