Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

When I use the archive widget in a sidebar, it creates the normal monthly post archive listing like the following:

  • February 2014
  • January 2014
  • October 2013

and so on. Whenever I click on these links, I get a 404 page.

The urls generated by the archive widget for monthly listings are in this format:

www.mysite.com/pedestrian/2014/02/

However, manually entering the following url style works:

www.mysite.com/pedestrian/?post_type=news&year=2014&monthnum=02

This shows exactly what I would expect to see (all the posts from February 2014).

I believe that the following code will fix my issue, but I am at a loss as to where to put it.

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

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

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

So, am i on the right track and if so where do i put this code? Thanks!

share|improve this question
    
What exactly is "pedestrian" in your URLs? Why do you think that code would address the issue? –  Rarst Feb 26 at 18:49
    
I don't know if the code will work.. but if you need to put it somewhere put it in functions.php –  gdaniel Feb 26 at 18:51
    
pedestrian is just one of the pages on the site. i just included it because i was copy and pasting from my site –  user47912 Feb 26 at 19:01

1 Answer 1

It looks like you need to add your news custom post type to the query for archive pages (I had the same problem).

Codex: custom post types to query

Add this code to your functions

    // Show posts of 'post', and 'news' post types on archive page
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );

function add_my_post_types_to_query( $query ) {
    if ( is_archive() && $query->is_main_query() )
        $query->set( 'post_type', array( 'post', 'news' ) );
    return $query;
}

Just check that your admin post listings are not affected.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.