[wp-trac] [WordPress Trac] #14383: Custom Permalink Structures Seem To Have Broken
WordPress Trac
wp-trac at lists.automattic.com
Wed Jul 21 22:48:45 UTC 2010
#14383: Custom Permalink Structures Seem To Have Broken
---------------------------+------------------------------------------------
Reporter: truthmedia | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Rewrite Rules | Version: 3.0
Severity: normal | Keywords: rewrite, permalink, custom permalink, custom rewrite rules
---------------------------+------------------------------------------------
Up until WordPress 3, we have been running some code in one of our plugins
which changes how WordPress reads tag URL's. Instead of the standard
/tags/oranges/ type structure, we've been using something along the lines
of /s/37/tags/oranges/ which allowed us to split the site into multiple
sections. (for example, the above might show different posts than say
/s/25/tags/oranges/)
The code we were using seemed to be working fine up until WordPress 3.0. I
have included it below. It is an adapted form of the example found near
the bottom of this page of Ryan Boren's Feed Director plugin:
http://codex.wordpress.org/Function_Reference/WP_Rewrite
The code we've been using:
{{{
add_action('generate_rewrite_rules', 'sectioncats_add_rewrite_rules');
function sectioncats_add_rewrite_rules( $wp_rewrite )
{
$new_rules = array(
'[Ss]/([0-9]+)/tags/([^/]+)/?$' => 'index.php?' .
'tag=' . $wp_rewrite->preg_index(2) .
'§ion_id=' . $wp_rewrite->preg_index(1),
'[Ss]/([0-9]+)/tags/([^/]+)/page/?([0-9]{1,})/?$' =>
'index.php?' .
'tag=' . $wp_rewrite->preg_index(2) .
'&paged=' . $wp_rewrite->preg_index(3) .
'§ion_id=' . $wp_rewrite->preg_index(1),
);
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
}}}
As of WordPress 3, this no longer works. Well... it sorta works in that it
keeps the proper section but redirects the browser to /tags/oranges/ (ie
back to the default WP structure)
So, my question is, What's the *right* way to do this? I've tried
switching to use simple add_rewrite_rule commands, but those don't yield
any better results.
Thanks in advance for any help.
James W.
--
Ticket URL: <http://core.trac.wordpress.org/ticket/14383>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list