Make WordPress Core

Opened 13 years ago

Last modified 5 years ago

#20171 new defect (bug)

Categories/Tags links are broken in WP 3.3.1, with multisite/subfolder install

Reported by: tszming's profile tszming Owned by:
Milestone: Priority: normal
Severity: normal Version: 3.1
Component: Permalinks Keywords: has-patch
Focuses: multisite Cc:

Description

All the default categories/tags links are not working, showing error..

"This is somewhat embarrassing, isn’t it?"

Steps to reproduce:


  1. Install WP 3.3.1 on domain, e.g. http://blog.example.com
  2. Enable multi-site features, using subfolder instead of subdomain
  3. Create a site, e.g. http://blog.example.com/test1
  4. Create a post, e.g. http://blog.example.com/test1/2012/03/04/test1/
  5. Enter the default category link, e.g. http://blog.example.com/test1/category/uncategorized/

Now you will see the message: "This is somewhat embarrassing, isn’t it?"

Fix:


  1. Enter this link: http://blog.example.com/test1/wp-admin/options-permalink.php
  2. Change nothing, press "Save Changes"
  3. Now you can view the link correctly: http://blog.example.com/test1/category/uncategorized/

The above issue also apply to tags

Attachments (2)

rewrite_init.diff (849 bytes) - added by duck_ 13 years ago.
20171.diff (1.1 KB) - added by nacin 11 years ago.

Download all attachments as: .zip

Change History (19)

#1 @scribu
13 years ago

  • Component changed from Permalinks to Multisite
  • Keywords needs-patch added
  • Severity changed from blocker to normal

Seems like the permalinks are not flushed when creating a site.

#2 @duck_
13 years ago

  • Version changed from 3.3.1 to 3.1

Rewrite rules are flushed during site creation, see wp_install_defaults().

The problem is that categories, tags and formats have already been registered with the "/blog/" prefix because they were registered during the init of the main site. So, when the rewrite rules are generated they have a different structure to the rest of the rules. I suspect that you encounter the same problem for any custom taxonomies/post types which register with_front as true.

In 3.1 it was only formats that had the problem. with_front => true was introduced for categories and tags in 3.1.1.

@duck_
13 years ago

#3 @duck_
13 years ago

I thought of maybe adding a "rewrite_init" action to WP_Rewrite::init() and hooking taxonomy registration onto that. So taxonomies are re-registered whenever the permalink structure is changed.

#4 follow-up: @scribu
13 years ago

'rewrite_init' seems like a good idea. Any drawbacks to using it for general CPT and taxonomy registration?

#5 in reply to: ↑ 4 @duck_
13 years ago

Replying to scribu:

'rewrite_init' seems like a good idea. Any drawbacks to using it for general CPT and taxonomy registration?

None that I have found so far.

Related #20174.

#6 @duck_
11 years ago

#24585 was marked as a duplicate.

#7 @duck_
11 years ago

  • Milestone changed from Awaiting Review to 3.7

Moving to 3.7 for review per #24585.

#9 @DrewAPicture
11 years ago

  • Keywords has-patch needs-docs added; needs-patch removed

rewrite_init.diff still applies to current trunk. This new action will need docs if we decide to move on it for 3.7.

@nacin
11 years ago

#10 @nacin
11 years ago

  • Keywords commit added; needs-docs removed
  • Milestone changed from 3.7 to 3.8

#11 @jeremyfelt
11 years ago

Tested 20171.diff against current trunk and all works as expected.

#12 @nacin
11 years ago

  • Milestone changed from 3.8 to Future Release

I like this but there are going to be some side effects. For one, WP_Rewrite is init'd well before the init hook, including before the locale is loaded. We could do it on both 'rewrite_init' and 'init', but at that point, we're firing create_initial_taxonomies() *three* times on bootstrap. Maybe we attach it to rewrite_init only after init() runs once.

This needs more testing and careful consideration.

#13 @jeremyfelt
11 years ago

  • Component changed from Multisite to Permalinks
  • Focuses multisite added

#14 @rosyteddy
10 years ago

Its really a long time that this has not been corrected.
New installations can benefit if a small notice is added at the time of Multisite installation:
"If its a subfolder installation "Categories" and "Post Format" links will not work or will be problematic. Do you still want to continue with 'subfolder'?"

Is there any plugin / can any one kindly contribute a plugin for those of us who have already done subfolder installation and later discovered that there site members are unable to use categories out of the box? Thanks.

#15 @boonebgorges
9 years ago

#31567 was marked as a duplicate.

#16 @wonderboymusic
9 years ago

  • Keywords commit removed

#17 @jeremyfelt
9 years ago

#35297 was marked as a duplicate.

Note: See TracTickets for help on using tickets.