Wordpress - 在子类别归档URL中显示父类别和子类别名称

时间:2013-08-30 17:17:25

标签: wordpress wordpress-plugin wordpress-theming

我在使用Wordpress category/subcategory存档网址时遇到了一些问题。

例如,我希望能够显示此存档:
http://faroutmagazine.co.uk/wp/track-of-the-day同时将其父类别保留在网址中,使其成为http://faroutmagazine.co.uk/wp/music/track-of-the-day

以前,我只是在访问/music/track-of-the-day网址时收到“这是令人尴尬的......”404消息(即使这是在WP的管理部分的类别下的视图选项中显示的那个) )。

现在,管理区域中的“查看”链接只显示/track-of-the-day网址,此功能会显示类别帖子,但我希望它在网址中包含父类别。

我可以对functions.php文件或我可以添加的任何插件做些什么来实现这一点吗?请记住,此站点上有多个子类别存档,它们都应包含URL中的父类别。

***更新: 实际上,我现在只是使用Pages设置所有内容,并在页面上显示类别存档,因为它占用了太多时间。谢谢你的回答。人们告诉我使用%category%/%postname%作为固定链接结构是不正确的 - 是的,这适用于POST网址,但不适用于子类别的存档类别,这是我实际寻求帮助的问题。如果有人能提供答案,我们将不胜感激,但我现在正在使用这种解决方法,因为这需要花费太多时间来试图找出答案。

8 个答案:

答案 0 :(得分:18)

这是因为您在编辑条目时从右侧选项复选框中选择了类别和子类别。在每个条目中仅选择子类别框,它将显示嵌套的URL。

答案 1 :(得分:5)

要实现这一目标,您需要对永久链接进行一些更改

转到设置 - >永久链接,然后选择自定义结构,并在字段中使用此语法“ /%category%/%postname%/

现在保存设置,您可以在永久链接中使用其类别名称查看帖子网址

希望有所帮助:)

答案 2 :(得分:3)

实际上,分层子类别归档永久链接在wordpress中是默认的。

如果你有一个非常好的永久链接"在设置中选择的结构>永久链接,例如/%postname%,然后类别和子类别归档网址应默认为: yourdomain.com/category-base/category/sub-category/sub-sub-category

我在最近的一个WP项目中遇到了类似的问题,但是我使用了一个名为WP No Base Permalink的插件,以便在我的归档永久链接中删除我的类别和标记基本slug。当我停用插件时,类别层次结构突然返回到我的归档永久链接(幸运的是,这个项目仍在开发中,否则,我会遇到一些主要的404问题)。

我还没有找到/测试另一个插件来消除类别/标签基本slug,它也会保留子/类别归档网址中的层次结构,但事实证明我不需要为当前项目提供该功能。

相反,我使用基础slu blog-articlesblog-tags作为标准类别和标记,以便将博客分类法与其他分类法区分开来。然后我使用插件Types为该帖子类型创建自定义帖子类型和自定义分类。 “类型”插件在高级设置中有一个选项,可在创建自定义分类时将层次分类网址设置为truefalse

最后,我发现了一个名为Remove Taxonomy Base Slug的插件,可以有效地从分类法归档网址的基础段中删除默认的分类术语。幸运的是,这不会干扰分层子/类别URL,或标准标签和类别的基本slu ..

现在,我的博客类别/标签如下所示:

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

我的自定义帖子类型类别/标签如下所示:

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

呼!

我希望这有帮助!

答案 3 :(得分:2)

设置设置 - >永久链接 - >类别基数为'%category%'应该可以满足您的需求。根据WP doc:

  

嵌套子类别在URI

中显示为嵌套目录

请参阅http://codex.wordpress.org/Using_Permalinks

答案 4 :(得分:1)

永久链接设置应该类似于/%category%/%postname%/ ..

答案 5 :(得分:1)

在定义分类时,应将层次结构值设置为true。

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

然后,如果您有子类别,则网址将如下所示: http://example.com/taxonomy/parentCategory/subCategory/

我在这里发现了这个诽谤:

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

答案 6 :(得分:0)

如果仅使用自定义固定链接设置为%postname%,则会以... / category / subcategory的形式生成您的网址。

答案 7 :(得分:0)

您可以使用WordPress插件从网址中删除“类别” http://wordpress.org/plugins/wp-no-category-base/  然后按照Maruti给出的指示