在 WordPress 中实现简单的动态路由

gil*_*esv 3 php wordpress .htaccess iframe url-routing

假设我安装了一个干净的 WordPress,带有基本的自定义主题。

在该主题中,我有一个自定义页面模板,它只是一个 iframe,它指向不同域上的 web 应用程序。

因此,假设我的 WordPress 安装可以通过http://example.com进行,并且带有 iframe 模板的页面位于http://example.com/members/

我现在想添加动态路由,以便对http://example.com/members/loginhttp://example.com/members/event/1(例如)的所有请求都转到http:// example.com/members/但将路由的第二部分(“/login”或“/event/1”)传递到内部的 iframe。

在不侵入 WordPress 内部的情况下实现这一目标的最佳方法是什么?

我找到了这个插件: https: //wordpress.org/plugins/wp-on-routes/但令我沮丧的是我发现当我尝试使用它时它完全覆盖了 Wordpress 的内置路由,这意味着我必须手动重新添加每个 URL(据我所知,我在 PHP 方面还不够成熟),这是不行的,因为我的客户仍然需要能够在不手动编辑 php 文件的情况下进行发布。

感谢您的阅读。

Fen*_*r04 5

您可以使用add_rewrite_rule钩子添加路由,如下所示:

function custom_rewrite_rule() {
  add_rewrite_rule('members/([^/]+)/([^/]+)/?$',
    'index.php?memberspage=$matches[1]&event_id=$matches[2]',
    'top');
}

add_action('init', 'custom_rewrite_rule', 10, 0);
Run Code Online (Sandbox Code Playgroud)

您可能需要创建多个,具体取决于您重写的 URL。然后,您可以使用模板中的 URL 参数在 iframe 中加载适当的页面。