自定义帖子类型和档案

时间:2013-04-11 作者:gaoshan88

我有一个自定义的帖子类型:猫

当我访问时http://mysite.com/cats 我看到所有使用模板文件显示的cat帖子archive-cats.php

我已筛选getarchiveswhere 仅返回此自定义帖子类型中的帖子。

I输出wp_get_archives 并正确列出了包含cat文章的月份。

现在我的问题。。。存档链接如下http://mysite.com/2013/04 结果是404。它们都不起作用。

我的问题。。。如何让归档链接指向能够正确列出当月归档的内容?

我会这样想http://mysite.com/cats/2013/04 这将是最好的,但我不知道如何让任何东西工作,更不用说那种url了。

1 个回复
SO网友:Fränk

您需要自己添加重写规则。此代码应适用于:

function prefix_this_add_rewrite_rules() {

    // Add day archive (and pagination)
    add_rewrite_rule( \'/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/?([0-9]{1,})/?\', \'index.php?post_type=cats&year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\', \'top\' );
    add_rewrite_rule( \'cats/([0-9]{4})/([0-9]{2})/([0-9]{2})/?\', \'index.php?post_type=cats&year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\', \'top\' );

    // Add month archive (and pagination)
    add_rewrite_rule( \'cats/([0-9]{4})/([0-9]{2})/page/?([0-9]{1,})/?\',\'index.php?post_type=cats&year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\', \'top\' );
    add_rewrite_rule( \'cats/([0-9]{4})/([0-9]{2})/?\', \'index.php?post_type=cats&year=$matches[1]&monthnum=$matches[2]\', \'top\' );

    // Add year archive (and pagination)
    add_rewrite_rule( \'cats/([0-9]{4})/page/?([0-9]{1,})/?\', \'index.php?post_type=cats&year=$matches[1]&paged=$matches[2]\', \'top\' );
    add_rewrite_rule( \'cats/([0-9]{4})/?\', \'index.php?post_type=cats&year=$matches[1]\', \'top\' );

}
如果在插件中执行此操作,则需要在激活时调用此函数(通过register\\u activation\\u hook()),然后刷新重写规则。在主题中,连接到after\\u switch\\u主题。

您可以使用此插件帮助您进行调试:http://wordpress.org/extend/plugins/rewrite-rules-inspector/

结束

相关推荐

显示Archives.php中的所有自定义帖子类型

我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W