【问题标题】:Create custom rewrite rule for my WordPress plugin为我的 WordPress 插件创建自定义重写规则
【发布时间】:2010-12-06 06:14:23
【问题描述】:

我正在为 WordPress 编写一个插件,它实际上将是一个单独的排序模块(它将被放置在我正在开发的网站以及其他网站上的 IFRAME 中),但它的管理员与 WordPress 相关联。我写了管理部分没有太多麻烦,但是我在前端遇到了麻烦。

首先,我希望我的脚本可以通过 www.mysite.com/order/ 和as per the WordPress codex 访问,我发现我需要将以下代码放入我的主插件文件中:

add_action('init', 'ta_flush_rewrite_rules');

function ta_flush_rewrite_rules() 
{
  global $wp_rewrite;
  $wp_rewrite->flush_rules();
}

add_action('generate_rewrite_rules', 'ta_add_rewrite_rules');

function ta_add_rewrite_rules( $wp_rewrite ) {
  $new_rules = array("order/(.+)" => "/wp-content/plugins/my-plugin/order.php");
  $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}

但它不起作用,我真的不想弄脏 .htaccess 黑客攻击。

此外,即使这样可行,order.php 文件也是与我的插件分开的文件。这意味着我必须包含一些 WordPress 文件才能访问数据库和其他辅助类和函数。这就引出了第二个问题:有没有办法让 URL 调用我的插件的函数来呈现订单页面?

【问题讨论】:

  • 您找到解决方案了吗?
  • 据我所知,我走了另一条路。

标签: wordpress plugins rewrite mod-rewrite


【解决方案1】:

结帐wp_rewrite in a WordPress Plugin你可能会找到你需要的信息。

【讨论】:

    【解决方案2】:

    不要在 INIT 上刷新规则,因为它会在每个页面上进行大量 mysql 查询,并使用自定义重写规则干扰其他插件(例如创建自定义帖子类型的插件)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多