【问题标题】:Make Wordpress use the page instead of category让 Wordpress 使用页面而不是类别
【发布时间】:2015-11-25 10:35:18
【问题描述】:

我进行了大量研究,并遇到了一些这样的解决方案: https://wordpress.stackexchange.com/questions/106042/force-wordpress-to-show-pages-instead-of-category

但它仍然不是我正在寻找的。首先让我解释一下问题。

我创建了一个页面 /blog/ 和一个类别“博客”,都使用了永久链接 /blog/,禁用了 /category/ 永久链接,因此 SEO 将是正确的。

我遇到的解决方案不符合以下要求:

  • 不使用 301 重定向
  • 在 Wordpress 中禁用 /category/ 使用。
  • 还可以仅在页面 id 使用相同的 slug 时替换类别。

我只是想告诉 Wordpress 显示页面而不是类别。

为什么不直接编辑类别模板?

因为我创建的页面使用了 Visual Composer(Post Masonry Grid),所以我不能简单地移动设计。

为什么不直接使用重定向?

我愿意,但博客的永久链接与页面相同(SEO 目的。)

【问题讨论】:

  • 您想将 url 从类别更改为页面?比如 www.example.com/category 到 www.example.com/page
  • 不,不是。我希望 /blog/ 显示一个名为 blog 的页面(其中 slug 'blog')。并使用 Wordpress 的原生分类功能。但是该类别会覆盖页面 slug。
  • 我已经测试过了。您需要更改永久链接设置添加自定义永久链接,如 /%category%/%postname% 这将起作用
  • 已经这样做了。这使得 url 与类别相同。但是会显示类别。不是具有相同 url 的页面。
  • 您确定类别和页面 slug 是相同的。好吧,它对我有用。您的类别 url 将是 example.com/category/blog,页面 url 是 example.com/blog。我没有找到任何 404

标签: php wordpress


【解决方案1】:

我知道几年后没有解决方案,但我遇到了您在一个站点上描述的完全相同的问题,该站点在其他站点上运行。因此,我对不同之处进行了一些研究,并在遇到相同问题时帮助其他人。

背景

  • example.com 是域

  • 我有一个名为“foobar”的 WP 页面,其中包含内容

  • 我有一个名为“foobar”的 WP 帖子类别

  • 我有一篇 WP 帖子,标题为“与 foobars 相关的有趣事情”,类别设置为“foobar”

期望

  • 当我转到 example.com/foobar 时,我想查看关于 foobars 的页面,而不是显示所有属于该类别的博客文章的 WP 类别页面。

  • 当我去看有趣的事情的博文时,网址是example.com/foobar/fun-things-to-do-with-foobars/

设置

这是我的设置(它不需要任何额外的插件或代码编辑) 几个已安装的插件是 WP Rocket 和 Yoast,我将在此线程中重点介绍它们。

  1. WP 仪表板->设置->固定链接

  2. 选择“自定义结构”并在字段中输入/%category%/%postname%/

  3. 在同一页面上,将“类别库”更改为单个点。 “。” (没有引号,只有一个点/句号/句号

我已经安装了 Yoast,我已经设置它来覆盖永久链接设置,但我相信这会搞乱我手头的任务。

  1. WP 仪表板->SEO->高级->永久链接(选项卡)

  2. "更改 URLs->剥离类别基础..." = Keep

  3. 然后你需要清除缓存。我使用 WP Rocket 进行缓存,所以我刷新了缓存,现在一切正常。

编辑:确保在第 3 步和第 5 步之后保存更改

【讨论】:

  • 我只需要从 URL 中删除单词 category。 > 在同一页面上,将“类别库”更改为一个点。 “。” (没有引号,只有一个点/句号/句号这对我有用!使用突出主题 (VC) 和 Yoast SEO。
  • 第 4 步和第 5 步对我来说使用 Yoast 有点不同。我不得不在 Yoast SEO >> Search Appearance>> Taxonomies 中将“删除类别前缀”设置更新为“Keep”
【解决方案2】:

我知道这个话题很老,但问题仍然很重要。

我将使用博客示例。 此方法是无代码的,WP 原生解决方案。需要注意的是,您无法翻译“博客”slug,因此如果您不需要为其他语言提供不同的单词/slug,则此方法仅适用于一种语言。

  1. 使用 slug“博客”创建页面。或者任何你喜欢的。 它必须与您在下一步中作为基础输入的单词匹配:blog = blog it this example
  2. 将设置中的永久链接结构设置为:/blog/%category/%postname%/(/末尾的斜杠是您的偏好)
  3. 使用 SEO 插件,如 Yoast 或 Seopress Pro(或任何其他 方法)从 URL 中删除 /category。
  4. 转到设置 -> 阅读 -> “您的主页显示”部分 -> “静态页面(在下方选择)”
  5. 为主页设置静态页面
  6. 这就是魔法:将帖子页面设置为您的“博客”页面。
  7. 通过访问并保存永久链接页面上的设置来刷新永久链接(不做任何更改)。

然后你会得到正确的 URL:/blog/yourcategory/single-post-title/ 面包屑将起作用,所有类别都将是分层的,/blog 将作为页面而不是类别工作

最重要的是,当您转到您的类别页面时,您将获得/blog/yourcategory URL,它将用作存档页面。当您访问单个帖子时,您还会获得 URL /blog/yourcategory/single-post-title/

来自 Yoast 的面包屑应该可以工作。我使用 Seopress Pro,面包屑就像一个魅力一样工作(如果需要,您必须转到面包屑设置页面并为帖子选择类别,为类别和标签选择帖子)。

如果您在永久链接设置中不包含 /blog 就这样做,它仍然可以工作,您将获得页面而不是具有正确类别 URL 的类别,但单个帖子将是 /yourcategory/single-post-title

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2011-04-26
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多