自定义帖子类型的URL重写调整导致模板恢复为index.php

时间:2014-03-06 作者:Chris

我有一个带有URL永久链接重写的自定义帖子类型,如果它使用/mynews/stories/YYYY/mm/story名称,它似乎可以工作,但如果我将“mm”改为每月的前3个字母(例如1月、2月、3月等),模板层次结构会中断,并使用索引。php。

我的代码在这里http://pastebin.com/RS1DMbB6

我把这些都放在函数里了。php文件,因为我不允许添加插件。

因此,当我从%monthnum%更改为%month%时,URL重写工作正常,但使用了错误的模板。post\\u type\\u link hook和template\\u include内部的调试告诉我is\\u single为null,模板似乎转到了索引。php而不是单层。php甚至单个。php。

你知道为什么这个看似简单的更改会破坏模板层次结构吗?

1 个回复
SO网友:Milo

问题是%month% 不是可识别的重写标记。如果你add the tag 在您的init 操作并刷新永久链接,查询将成功。

function register_story_post_type(){
    // your post type registration stuff here, and then…
    add_rewrite_tag( \'%month%\',\'([^&]+)\' );
}
add_action(\'init\',\'register_story_post_type\');
另外,还有大约一百种方法可以清理这些代码,但都与您的问题无关。但我建议不要直接操作重写全局变量,如果底层代码发生更改,这是一个会给您带来麻烦的坏习惯。始终使用API,避免使用全局变量。你的story 当您注册帖子类型时,会添加重写标记,可以使用rewrite 论点

结束

相关推荐

Advanced permalinks structure

我想得到这个:mysite.com/category/tag/ 示例:mysite.com/news/sports/ 新闻是一个类别,体育是一个标签我该怎么做?谢谢