【问题标题】:Wordpress Archive URL rewritingWordpress 存档 URL 重写
【发布时间】:2018-04-25 01:41:37
【问题描述】:

我有自定义分类法的自定义 wordpress 帖子类型。

在存档页面上,我正在尝试查询 2 个自定义自定义分类法。

Archive template is "archive-job_listing.php"

Wordpress 网址是:

example.com/?job_listing_region=pune&job_listing_category=wordpress

WP重写代码:

function ao_add_rewrite_rule() {
  add_rewrite_rule( 'pune/wordpress', '?job_listing_region=pune&job_listing_category=wordpress', 'top');
  flush_rewrite_rules();
}


add_action( 'init', 'ao_add_rewrite_rule');

网址应为

example.com/pune/wordpress

当我添加上面的代码时,没有任何反应。我刷新了 URL(永久链接)

PS:我已经编写了正则表达式来使所有查询字符串作为 URL 的工作。但这行不通。所以我想让这个简单的工作。

【问题讨论】:

  • 只是在你的flush_rewrite_rules() 上做一个注释——你不想每次都运行它,只运行一次,即插件停用或激活。这是一项昂贵的操作,因此 Wordpress 会缓存重写规则。单击保存永久链接中的更改执行相同的操作。更多信息在offical docs.

标签: wordpress mod-rewrite url-rewriting


【解决方案1】:

不要忘记点击永久链接设置中的保存更改。

尝试以下操作:

function ao_add_rewrite_rule() {
  add_rewrite_rule( '^([^/]+)/([^/]+)/?', 'index.php?job_listing_region=$matches[1]&job_listing_category=$matches[2]', 'top');
  flush_rewrite_rules();
}


add_action( 'init', 'ao_add_rewrite_rule');

【讨论】:

  • 这行不通。如果我删除 index.php 它适用于 wp 管理员及其破坏。正如我的问题中提到的那样,我正在使用archieve和模板的其余部分是archive-job_listing.php。
  • 您是否将job_listing_regionjob_listing_category 保存到查询变量中
  • 是的,我正在使用查询字符串。我试过这个,但它的工作原理和最里面的页面显示 404,当有人点击这个页面上的任何帖子时,它显示 404(/wordpress/pune/job-name-1),所以这个规则会影响那个页面。知道我哪里出错了吗?
猜你喜欢
  • 2012-06-10
  • 1970-01-01
  • 2012-10-25
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 2011-12-10
相关资源
最近更新 更多