Support » Fixing WordPress » Default navigation is giving a 404 error

Viewing 6 replies - 1 through 6 (of 6 total)
  • tylerhauser

    (@tylerhauser)

    I’ve experienced this bug as well. And just to include a bit more info, I’ll just mention that I experience this while using the WP-PageNavi plugin. Here’s a link to a post on the plugin support forum about this issue. Also, it occurs using the default theme. Any help with this would be great!

    Thanks!

    tylerhauser

    (@tylerhauser)

    Anyone got anything on this? Is this a bug?

    My permalink is set to Custom: /%category%/%post_id%, and I am using WP 2.7.1 with the WordPress Default theme. The problem occurs with or without using PageNavi 2.40, so the problem must with WordPress itself, not the plugin.

    I tried installing this plugin as a fix, but it did not do anything:
    http://barefootdevelopment.blogspot.com/2007/11/fix-for-wordpress-paging-problem.html

    When I go to a category page (let’s call it ‘stuff’) like http://www.mysite.com/wordpress/stuff it correctly shows the posts for the first page of the category, and if you hover over the Older Entries links is says
    http://www.mysite.com/wordpress/stuff/page/2

    but if you click it, you get a 404 Error.

    I have posted a bug in the WordPress tracker, but if anybody knows of a solution it would be greatly appreciated.

    Thanks

    I re-wrote the barefoot plugin for WP 2.7.1 and this fixed my problem… maybe it will help others as well. It also works with WP-PageNavi…

    [code]

    <?php
    /*
    Plugin Name: Fix Paging in Category Listings
    Plugin URI:
    Description: Fixes a bug where next/previous page links are broken in category listings
    Version: 0.6
    Author: Doug Smith (modified by Jeff Sherk)
    Author URI:

    Modified on March 23, 2009 by Jeff Sherk for WordPress 2.7.1

    Based on original plugin info listed below:
    Plugin Name: Fix Paging in Category Listings
    Plugin URI: http://www.thinkbarefoot.com
    Description: Fixes a bug where next/previous links are broken in category by year/month listings
    Version: 0.5
    Author: Doug Smith
    Author URI: http://www.thinkbarefoot.com

    Copyright 2007 Doug Smith (email: dsmith@thinkbarefoot.com)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    */

    /**
    * Function to fix problem where next/previous buttons are broken on list
    * of posts in a category when the custom permalink string is:
    * /%category%/%year%/%monthnum%/%postname%/
    * The problem is that with a url like this:
    *
    * /category/2007/10/page/2
    *
    * the ‘page’ looks like a post name, not the keyword “page”
    *
    * MODIFIED ON March 23, 2009 by Jeff Sherk
    * Permalink structure was /%category%/%post_id% which looked like
    * http://www.mysite.com/wordpress/news/27
    * When attempting to go to another page, it looked like this
    * http://www.mysite.com/wordpress/news/27/page/2
    * but would generate a 404 error .
    *
    * This modification takes $query_string[‘category_name’] and chops the ‘/page’
    * off the end. It also takes $query_string[‘paged’] and sets it equal to
    * $query_string[‘p’], and then unsets $query_string[‘p’].
    * ‘p’ is not needed, but ‘paged’ is needed in order to make it work correctly
    */
    function fix_page_in_category_from_query_string($query_string) {

    //Check to see if the ‘p’ and ‘category_name’ are set in $query_string
    if ( isset($query_string[‘category_name’]) && isset($query_string[‘p’]) ) {

    $category_name = $query_string[‘category_name’];
    $category_len = strlen($category_name);

    //Check to see if the ‘category_name’ has ‘/page’ on the end of it
    if (substr($category_name, $category_len-5,5) == ‘/page’) {

    //Remove ‘/page’ from the end of ‘category_name’
    $query_string[‘category_name’] = substr($query_string[‘category_name’],0,$category_len-5);

    //Set ‘paged’ equal to the page you want to go to
    $query_string[‘paged’] = $query_string[‘p’];

    //Unset ‘p’ since we don’t need it anymore because we set ‘paged’ instead
    unset($query_string[‘p’]);
    }
    }
    return $query_string;
    }

    add_filter(‘request’, ‘fix_page_in_category_from_query_string’);

    ?>

    [/code]

    Hey jsherk,

    This seems to be exactly the fix I’m looking for! However, I’m not sure how I should use your above code. Should I turn it into a plugin – if so, how? Should I include it in the header.php of the theme? Could you help me out?

    Yes, you turn the above code into a plugin…

    Copy the above code into a text file, and then save the text file, and rename it with a .php extension… let’s call the file fix-category-pages.php

    Now create a folder in the wp-content/plugins directory with the same name as the name of the file you created above (except no .php)… so let’s call the folder fix-category-pages

    So yo should now have this:
    /wp-content/plugins/fix-category-pages/fix-category-pages.php

    Now just go to your WP dashboard and go to the plugins section and activate the plugin and you should be good to go!

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Default navigation is giving a 404 error’ is closed to new replies.