首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress add_rewrite_rule

Wordpress add_rewrite_rule
EN

Stack Overflow用户
提问于 2013-10-29 20:50:56
回答 1查看 3.5K关注 0票数 0

我有个奇怪的问题想添加一个重写规则。

首先,一个关于我的装置的笔记.我正在使用一个date.php文件的另一个特定的设置在网站上。

我遇到问题的地方是一个定制的档案页面。为了不弄乱date.php模板,我尝试在wordpress中设置一个新页面,然后创建自己的模板来显示文档。

为了用日期捕获url而不是重定向到date.php,我设置了以下add_rewrite_rules:

代码语言:javascript
复制
function my_archives() {

    add_rewrite_rule("my-archives/([0-9]{4})/([0-9]{1,2})/page/([0-9]{1,})/?$", 'index.php?pagename=my-archives&year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]', 'top');

    add_rewrite_rule("my-archives/([0-9]{4})/([0-9]{1,2})/?$", 'index.php?pagename=my-archives&year=$matches[1]&monthnum=$matches[2]', 'top');    

}

add_action('init', 'my_archives');  

我认为一切都很好,因为我的链接工作正常。示例:用于分页结果的http://mysite.com/my-archives/2013/09/http://mysite.com/my-archives/2013/09/page/2/

一个月后,我发现由于某种原因,它只能正确地重定向到比当前日期晚一个月的日期。因此,目前的日期是2013/10/它只是重定向/2013/09/,其他的一切都被重定向到404页。

如果有人在我的代码中看到一些不正确的东西,那么我们将非常感谢您对可能的原因提出的任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-29 23:38:02

您是否碰巧没有查询的任何结果?

您是否链接到WordPress查询,以确保WordPress正确理解该查询(可能WordPress正在尝试在指定的年份和月份内查找带有片段“archives”的页面,如果不能,则显示一个404错误)。

尝试执行以下操作:

代码语言:javascript
复制
var_dump( get_posts( 'pagename=my-archives&year=2013&monthnum=10' ) );

看看能不能得到任何结果。如果没有,那很可能是你的问题。

为了解决这一问题,我建议您将重写规则更改为:

代码语言:javascript
复制
add_rewrite_rule("my-archives/([0-9]{4})/([0-9]{1,2})/?$", 'index.php?pagename=my-archives&my_year=$matches[1]&my_monthnum=$matches[2]', 'top');

因为我假设如果您没有连接到主WordPress查询,那么您将在自定义页面模板上执行该查询。在那里,您应该查找my_yearmy_monthnum查询变量,而不是yearmonth

请记住,实际上修改主WordPress查询(在parse_request(传递$wp对象而不是$wp_query)或pre_get_posts操作(传递$wp_query对象)上)可能是更好的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19668821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档