在wordpress中为我的web服务添加自定义url


Add custom url for my web service in wordpress

我是新的wordpress,我正在创建wordpress的扩展。我找了很多,但没有找到任何解决办法。也许我的问题是重复的,但我没有找到任何解决方法。我的问题是:

我想为我的扩展api创建一个自定义url。就像有些人会在那个url上发布数据,我会在数据库中保存数据。我的url应该是www.example.com/custom_url

我的url将没有页面和模板,这是一种web服务。

所以在我的扩展,我想当任何用户安装该扩展这个custom_url将自动为他们激活。

我试过add_rewrite_rule, add_rewrite_endpoints等。但没有成功。

请建议我或提供给我任何链接,其中描述。

根据WordPress论坛上的教程:

什么是端点?

使用端点允许您轻松地创建重写规则来捕获正常的WordPress url,但在最后有一点额外的。为例如,您可以使用一个端点来匹配所有post url"图库",并显示文章中使用的所有图像,例如:http://example.com/my-fantastic-post/gallery/。

完整教程在这里:https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/

所以当你需要创建虚拟页面时,它是没有帮助的。

然而,根据WordPress Stack Exchange上的以下帖子,可以使用add_rewrite_rule创建虚拟页面

如何在WordPress中创建一个"虚拟"页面

原文节选:

首先,我们添加一个重写规则,它添加了一个查询变量,然后我们做这个查询var public,然后我们需要检查这个是否存在查询var将控件传递给我们的插件文件。到我们找到的时候这样,通常的WordPress初始化就发生了(我们打破了)(在常规post查询之前)

add_action( 'init', 'wpse9870_init_internal' );
function wpse9870_init_internal()
{
    add_rewrite_rule( 'my-api.php$', 'index.php?wpse9870_api=1', 'top' );
}
add_filter( 'query_vars', 'wpse9870_query_vars' );
function wpse9870_query_vars( $query_vars )
{
    $query_vars[] = 'wpse9870_api';
    return $query_vars;
}
add_action( 'parse_request', 'wpse9870_parse_request' );
function wpse9870_parse_request( &$wp )
{
    if ( array_key_exists( 'wpse9870_api', $wp->query_vars ) ) {
        include 'my-api.php';
        exit();
    }
    return;
} 

法典页add_rewrite_rule

1)。为虚拟页面创建操作

add_action( 'template_redirect', 'apicall' );

function apicall() {
$callapi = $_GET['API'];
if($callapi=='YOUR API Name'){
            header('Content-Type: text/javascript; charset=utf8');
            header("Access-Control-Allow-Origin: *"); 
            header('Access-Control-Max-Age: 3628800');
            header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
{{YOUR LOGIC}}
        exit;
}   
}

在浏览器上书写URL: www.YOURDOMAIN.com/?API=YOUR API NAME