WordPress基于日期的分类法/术语存档(重写URL和重定向)

WordPress基于日期的分类法/术语存档(重写URL和重定向),wordpress,redirect,rewrite,permalinks,custom-taxonomy,Wordpress,Redirect,Rewrite,Permalinks,Custom Taxonomy,我试图做的是允许网站显示基于日期的条款档案,但我一点运气都没有 我希望它如何工作: website.com/taxonomy/term/非常有效 website.com/taxonomy/term/2012不。。。实际上是404。 website.com/taxonomy/term/2012/11 我需要一些帮助来创建一些重写规则,这些规则将接受url并修改查询,以添加year={year}&monthnum={$month}(或者说,这很神奇),还需要重定向回taxonomy taxonomy

我试图做的是允许网站显示基于日期的条款档案,但我一点运气都没有

我希望它如何工作:

website.com/taxonomy/term/
非常有效

website.com/taxonomy/term/2012
不。。。实际上是404。
website.com/taxonomy/term/2012/11

我需要一些帮助来创建一些重写规则,这些规则将接受url并修改查询,以添加
year={year}&monthnum={$month}
(或者说,这很神奇),还需要重定向回
taxonomy taxonomy.php
模板,因为这似乎会中断

请询问,我将尽我所能帮助澄清:)

分类法注册(从项目中复制):

register_taxonomy ( 'age-limit', array('event'), array(
        'hierarchical' => false,
        'labels' => array (
            'name' => _x( 'Age limit', 'taxonomy general name' ),
            'singular_name' => _x( 'Age limit', 'taxonomy singular name' ),
            'search_items' =>  __( 'Search Age limits' ),
            'all_items' => __( 'All Age limits' ),
            'edit_item' => __( 'Edit Age limit' ), 
            'update_item' => __( 'Update Age limit' ),
            'add_new_item' => __( 'Add New Age limit' ),
            'new_item_name' => __( 'New Age limit' ),
            'menu_name' => __( 'Age limits' ),
        ),
        'show_ui' => true,
        'query_var' => true,
        'rewrite' => array('slug' => 'age-limit'),
  ));

关于改写规则。。。您可以使用这些代码行(已测试和工作)。 我不知道你提到的重定向问题

add_filter('rewrite_rules_array', '_rewrite_rules_array');
function _rewrite_rules_array($rewrite_rules) {

  $taxonomy = "age-limit";
  $taxonomy_slug = "age-limit";


  $month_rule = array($taxonomy_slug .'/(.+?)/([0-9]{4})/([0-9]{1,2})/?$'   => 'index.php?' . $taxonomy . '=$matches[1]&year=$matches[2]&monthnum=$matches[3]');
  $year_rule = array($taxonomy_slug . '/(.+?)/([0-9]{4})/?$' => 'index.php?' . $taxonomy . '=$matches[1]&year=$matches[2]');

  $rewrite_rules = $year_rule + $month_rule + $rewrite_rules;

  return $rewrite_rules;
}
这个WordPress插件帮助我更好地理解了重写规则: