【问题标题】:Wordpress - Show parent category AND subcategory name in subcategory archive URLWordpress - 在子类别存档 URL 中显示父类别和子类别名称
【发布时间】:2013-09-03 11:59:19
【问题描述】:

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

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

以前,我在访问/music/track-of-the-day URL 时收到一条“这很尴尬...”404 消息(即使这是出现在 WP 管理部分的类别下的“查看”选项中)。

现在管理区域中的查看链接只显示/track-of-the-day URL,这确实显示了类别帖子,这很棒,但我希望它在 URL 中包含父类别。

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

***更新: 实际上,我现在使用 Pages 并在页面上显示类别档案,因为它占用了太多时间,所以我实际上只是以不同的方式设置了所有内容。不过谢谢你的回答。人们告诉我使用%category%/%postname%,因为永久链接结构不正确 - 是的,这适用于 POST url,但不适用于子类别的存档类别,这是我实际上正在寻求帮助的问题。如果有人可以提供答案,将不胜感激,但我现在正在使用这种解决方法,因为这会占用太多时间来试图弄清楚。

【问题讨论】:

  • woocommerce-url-builder.co.za 是一个付费插件,可以解决这个问题,并分别从产品类别和产品中删除 /product-category/ 和 /product/。

标签: wordpress wordpress-theming


【解决方案1】:

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

【讨论】:

  • 这对我有用。我不知道并检查了父类和子类。通过选择子类别,它现在按预期工作:/category1/category2/post/ 甚至面包屑痕迹也正常工作。
  • 答案非常笼统 - 您需要给出说明,才能使此答案对其他用户有用
  • 这对我来说也适用于修复 URL,但我需要这些页面也位于其父类别中以进行排序 =/
  • 我正在使用自定义帖子类型,需要为类别设置自定义分类(因为我不希望帖子类别与自定义帖子类型混合),我似乎无法得到这完全有效。我的自定义分类的 slug 是 product_categories,自定义帖子类型是 product,重写 slug 没有帮助,永久链接结构也没有帮助。我只是希望我的网址是:/category/subcategory/postname,但子类别不会在 url 中维护它们的父类别,所以就像这样:/subcategory/postnamecategory/postname
  • 这应该是公认的答案。不过,在 WP 中不清楚。
【解决方案2】:

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

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

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

希望对你有帮助:)

【讨论】:

  • 我已经这样做了,它适用于帖子名称,但不适用于子类别存档。实际上,我现在使用 Pages 并在页面上显示类别档案,因为它占用了太多时间,所以我实际上只是以不同的方式设置了所有内容。不过感谢您的回答。
【解决方案3】:

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

如果您在设置 > 永久链接中选择了“漂亮的永久链接”结构,例如 /%postname%,那么类别和子类别存档 URL 应默认为: yourdomain.com/category-base/category/sub-category/sub-sub-category

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

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

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

最后,我找到了一个名为Remove Taxonomy Base Slug 的插件,它有效地从分类档案网址的基本信息中消除了默认分类术语。幸运的是,这不会干扰分层子/类别 URL,或标准标签和类别的基本 slug。

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

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

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

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

呼!

我希望这会有所帮助!

【讨论】:

    【解决方案4】:

    您应该在定义分类时将分层值设置为 true。

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

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

    我在这里找到了这个sloution:

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

    【讨论】:

      【解决方案5】:

      Setting Settings->Permalinks->Category base to '%category%' 应该给你你想要的。根据 WP 文档:

      嵌套的子类别在 URI 中显示为嵌套目录

      http://codex.wordpress.org/Using_Permalinks

      【讨论】:

      【解决方案6】:

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

      【讨论】:

      • 这不起作用 - 我已经尝试过并在我原来的问题中提到过。
      【解决方案7】:

      如果仅将自定义永久链接设置用作 %postname%,它将使您的 url 采用 .../category/subcategory 的形式。

      【讨论】:

      • 这不起作用 - 完整的帖子 URL 很好,但不适用于子类别存档 - 他们有 404 错误。
      【解决方案8】:

      您可以使用 WordPress 插件从 url 中删除“类别” http://wordpress.org/plugins/wp-no-category-base/ 然后按照 Maruti 给出的说明进行操作

      【讨论】:

      • 我已经试过了——帖子链接在 URL 中有类别和子类别——这不是问题。问题是它不会显示子类别存档,同时将父类别保留在 URL 中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      相关资源
      最近更新 更多