WordPress.org

Ready to get started?Download WordPress

Forums

Default navigation is giving a 404 error (7 posts)

  1. seg
    Member
    Posted 5 years ago #

    My blog utilizes both categories and sub-categories. Posts are only associated with sub-categories, but I organize the sub-categories into categories. My Category base is "topic" and users are able to access any of the following pages:

    http://www.domain.com/category
    http://www.domain.com/topic/category
    http://www.domain.com/topic/category/sub-category

    When I use the default WordPress navigation with the default theme, the navigation for the first URL (http://www.domain.com/category) takes me to:
    http://www.domain.com/category/page/2

    This URL give a 404 error. The other two URls work fine:
    http://www.domain.com/topic/category/page/2
    http://www.domain.com/topic/category/sub-category/page/2

    Does anyone know how to fix this? Is there a preferred method for reporting this bug?

    Thanks,
    Shane

  2. tylerhauser
    Member
    Posted 5 years ago #

    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!

  3. tylerhauser
    Member
    Posted 5 years ago #

    Anyone got anything on this? Is this a bug?

  4. jsherk
    Member
    Posted 5 years ago #

    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

  5. jsherk
    Member
    Posted 5 years ago #

    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]

  6. neomind
    Member
    Posted 5 years ago #

    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?

  7. jsherk
    Member
    Posted 4 years ago #

    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!

Topic Closed

This topic has been closed to new replies.

About this Topic