Wordpress - Show parent category AND subcategory n

2020-02-28 04:43发布

问题:

I'm having some trouble with Wordpress category/subcategory archive URLs.

For example, I want to be able to display this archive:
http://faroutmagazine.co.uk/wp/track-of-the-day while keeping its parent category in the URL, making it http://faroutmagazine.co.uk/wp/music/track-of-the-day

Previously, I was just getting a "This is embarrassing..." 404 message when accessing the /music/track-of-the-day URL (even though that's the one that was appearing in the View option under categories in the admin section of WP).

Now the View link in the admin area only shows me the /track-of-the-day URL, and this DOES display the category posts which is great, but I want it to include the parent category in the URL.

Is there anything I can do to the functions.php file or any plugins I can add to make this happen? Please bear in mind that there are multiple subcategory archives on this site, and they should all contain the parent category in the URL.

***UPDATE: I actually have just set everything up a different way now using Pages and showing category archives on pages as it's taking up too much time. Thanks for your answer though. People telling me to use %category%/%postname% as the permalink structure are incorrect - yes, this works for the POST urls but not for the archive category of the subcategory which is the problem I was actually looking for help with. If anyone can provide an answer, it would be appreciated, but I am using this workaround now as this was taking up way too much time trying to figure out.

回答1:

This happens because you chose category and subcategory from the right options tick boxes when editing the entry. Choose only the subcategory box in every entry and it will show the nested URL.



回答2:

To make this happen you need to make some change in permalinks

go to Settings->Permalinks then select custom structure and use this syntax " /%category%/%postname%/ "in the field

Now save the settings and you can see the post url's using its category name in the permalink

Hope it helps :)



回答3:

Actually hierarchical subcategory archive permalinks are default in wordpress.

If you have a "pretty permalinks" structure selected in settings > permalinks, like /%postname% for example, then category and subcategory archive urls should default to something like: yourdomain.com/category-base/category/sub-category/sub-sub-category

I had encountered a similar issue with a recent WP project, BUT I was using a plugin called WP No Base Permalink in order to get rid of my category and tag base slugs in my archive permalinks. When I deactivated the plugin, category hierarchy suddenly returned to my archive permalinks (luckily this project was still in development, otherwise, I would have had some major 404 problems).

I have not yet found/tested another plugin for eliminating category/tag base slugs that will also preserve hierarchy in sub/category archive urls, but it turns out that I do not need that functionality for my current project.

Instead I am using the base slugs blog-articles and blog-tags for the standard categories and tags in order to set the blog taxonomies apart from other taxonomies. Then I am using the plugin Types to create a custom post type and custom taxonomies for that post type. The Types plugin has an option in the advanced settings to set hierarchical taxonomy urls to true or false when creating a custom taxonomy.

Finally, I found a plugin called Remove Taxonomy Base Slug that effectively eliminates the default taxonomy term from the base slug of the taxonomy archive urls. And this, thankfully, does not interfere with the hierarchical sub/category urls, OR the base slugs for standard tags and categories.

So now, my blog categories/tags look like this:

yourdomain.com/blog-articles/category/sub-category/ or yourdomain.com/blog-tags/tag/

And my custom post type categories/tags look like this:

yourdomain.com/category/sub-category/ or yourdomain.com/tag/

Phew!

I hope this helps!



回答4:

Setting Settings->Permalinks->Category base to '%category%' should give you what you want. According to WP doc:

Nested sub-categories appear as nested directories in the URI

See http://codex.wordpress.org/Using_Permalinks.



回答5:

You should set hierarchical value to true when you are defining your taxonomy.

'rewrite' => array('slug' => 'mySlug', 'hierarchical' => true),

Then if you have a subcategory the url will be shown like this: http://example.com/taxonomy/parentCategory/subCategory/

I found this sloution here:

https://wordpress.stackexchange.com/questions/155319/how-to-include-parent-terms-in-hierarchical-taxonomy-urls



回答6:

The Permalinks settings should be like /%category%/%postname%/ ..



回答7:

If use custom permalinks settings as %postname% only, it will make your url in the form of .../category/subcategory.



回答8:

You can use WordPress plugin to remove 'category' from url http://wordpress.org/plugins/wp-no-category-base/ and then follow the instruction given by Maruti