Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Source: http://clubmate.fi/date-archives-for-wordpress-custom-post-types/
- // Custom post type specific rewrite rules
- function events_rewrite_rules($wp_rewrite) {
- // Here we're hardcoding the CPT in
- $event_rules = generate_date_archives_events('event', $wp_rewrite);
- $wp_rewrite->rules = $event_rules + $wp_rewrite->rules;
- return $wp_rewrite;
- }
- // add_action('generate_rewrite_rules', 'events_rewrite_rules');
- // Generate date archive rewrite rules for a given custom post type
- function generate_date_archives_events($cpt, $wp_rewrite) {
- $event_rules = array();
- $post_type = get_post_type_object($cpt);
- $slug_archive = $post_type->has_archive;
- if ($slug_archive === false) {
- return $event_rules;
- }
- if ($slug_archive === true) {
- // Here's my edit to the original function, let's pick up
- // custom slug from the post type object if user has
- // specified one.
- $slug_archive = $post_type->rewrite['slug'];
- }
- $dates = array(
- array(
- 'rule' => "([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})",
- 'vars' => array('year', 'monthnum', 'day')
- ),
- array(
- 'rule' => "([0-9]{4})/([0-9]{1,2})",
- 'vars' => array('year', 'monthnum')
- ),
- array(
- 'rule' => "([0-9]{4})",
- 'vars' => array('year')
- )
- );
- foreach ($dates as $data) {
- $query = 'index.php?post_type='.$cpt;
- $rule = $slug_archive.'/'.$data['rule'];
- $i = 1;
- foreach ($data['vars'] as $var) {
- $query.= '&'.$var.'='.$wp_rewrite->preg_index($i);
- $i++;
- }
- $event_rules[$rule."/?$"] = $query;
- $event_rules[$rule."/feed/(feed|rdf|rss|rss2|atom)/?$"] = $query."&feed=".$wp_rewrite->preg_index($i);
- $event_rules[$rule."/(feed|rdf|rss|rss2|atom)/?$"] = $query."&feed=".$wp_rewrite->preg_index($i);
- $event_rules[$rule."/page/([0-9]{1,})/?$"] = $query."&paged=".$wp_rewrite->preg_index($i);
- }
- return $event_rules;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement