【问题标题】:Using custom rewrite rules in Wordpress在 Wordpress 中使用自定义重写规则
【发布时间】:2015-08-17 12:35:02
【问题描述】:

我正在尝试在 WordPress 中创建自定义重写规则,以便我可以根据查询字符串中的内容将数据传递到页面。

我的页面运行良好: /retailers-a-z/?merchant=some_merchant 然后也 /retailers-a-z/?merchant=some-merchant&offer=some-offer

我首先尝试在 .htaccess 中为此创建一个重写规则,但由于意识到 WordPress 有它自己的内部重定向数据库。所以经过大量研究后,我设法想出了以下代码......但是,它是仍然无法正常工作..每当我尝试访问时 /retailers-a-z/some-retailer/retailers-a-z/some-retailer/some-offer 它只是加载主页。

functions.php:

function wp_raz_rules()
{
  add_rewrite_rule(
    'retailers-a-z/([^/]+)/?$',
    'index.php?merchant=$matches[1]',
    'top'
  );

  add_rewrite_rule(
    'retailers-a-z/([^/]+)/([^/]+)/?$',
    'index.php?merchant=$matches[1]&offer=$matches[2]',
    'top'
  );

  add_rewrite_tag('%merchant%', '([^/]+)');
  add_rewrite_tag('%offer%', '([^/]+)');
}
add_action('init', 'wp_raz_rules');

function wp_raz_vars($vars)
{
  $vars[] = 'merchant';
  $vars[] = 'offer';
  return $vars;
}
add_filter('query_vars', 'wp_raz_vars');

然后我相信我可以使用get_query_var('merchant')get_query_var('offer') 而不是$_GET[] 访问它们

有什么想法吗?谢谢:)

【问题讨论】:

    标签: php wordpress .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    通过在查询字符串中明确定义页面名称来修复它。

    index.php?pagename=retailers-a-z&merchant=$matches[1]&offer=$matches[2]

    不是 100% 确定这是否是正确的做法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多