Default navigation is giving a 404 error
-
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-categoryWhen 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/2This 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/2Does anyone know how to fix this? Is there a preferred method for reporting this bug?
Thanks,
Shane
-
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!
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.htmlWhen 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/2but 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.comCopyright 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.phpNow just go to your WP dashboard and go to the plugins section and activate the plugin and you should be good to go!
- The topic ‘Default navigation is giving a 404 error’ is closed to new replies.