【发布时间】:2013-10-13 17:33:58
【问题描述】:
我正在尝试在 Wordpress 中创建重写规则,以创建指向搜索结果的直接漂亮链接。
我正在使用一个名为“对象”的自定义帖子类型
我的结果页面位于此网址:http://www.domain.com/objects/
我想创建这种 URL 来指向新对象的列表:http://www.domain.com/objects/new
重写后的查询必须是:http://www.domain.com/objects/?filter=new
然后我将能够使用 $_GET['filter'] 值来查询我的对象 (meta_query)...
我的问题
我已经尝试使用此代码:
add_rewrite_tag('%filter%','([^&]+)');
add_rewrite_rule('objects/new/','objects/?filter=new','top');
.htaccess 看起来像这样:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^objects/new/ /objects/?filter=new [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
不幸的是,当我尝试访问 URL http://www.domain.com/objects/new 时,我遇到了 404 错误:(
调试栏告诉我这个:
Request:
objects/new
Query String:
attachment=new
Matched Rewrite Rule:
[^/]+/([^/]+)/?$
Matched Rewrite Query:
attachment=new
有人能告诉我为什么 Wordpress 会尝试检索附件吗? 我的重写规则有问题还是我遗漏了什么?
提前感谢您的帮助!
【问题讨论】:
-
几个问题 1. 这是否正常工作 - domain.com/objects 2. domain.com/objects/filter/new - 你是否可以?
-
您好 Pramod,我不明白您对这些问题的意思是什么? domain.com/objects 是一个现有的 WP 页面, domain.com/objects/filter/new 对我来说不是一个好的解决方案,因为我不想要最终 url 中的“过滤器”(我想要 domain.com/objects /新)
标签: wordpress