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

aja*_*tak 7 php wordpress

我是 wordpress 的新手,我正在为 wordpress 创建一个扩展。我搜索了很多,但没有找到任何解决方案。可能是我的问题是重复的,但我没有找到任何解决方案。我的问题是:

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

我的网址将没有页面和模板,它是一种网络服务。

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

我试过add_rewrite_ruleadd_rewrite_endpoints 等等。但没有成功。

请给我建议或提供任何描述它的链接。

Dha*_*ang 8

根据 WordPress 论坛上的教程:

什么是端点?

使用端点可以让您轻松创建重写规则来捕获普通的 WordPress URL,但在最后添加一些额外内容。例如,您可以使用端点来匹配所有后跟“gallery”的帖子 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 中创建“虚拟”页面

以下是原始文章的部分摘录:

首先我们添加一个重写规则,添加一个查询变量,然后我们将这个查询变量公开,然后我们需要检查这个查询变量是否存在,以将控制权传递给我们的插件文件。到我们这样做时,通常的 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;
} 
Run Code Online (Sandbox Code Playgroud)

法典页面 add_rewrite_rule