【问题标题】:Wordpress rewriting URLsWordpress 重写 URL
【发布时间】:2016-04-27 11:29:11
【问题描述】:

我正在尝试制定 Wordpress 重写规则,这是我第一次这样做。我得到了一些结果,但不是我预期的结果。

在我的网站上,我有一个包含许多类别(美容、旅游等)的博客。没有重写的网址是下一个:

http://mywebsite.com/blog/?cat=10 //where 10 is the category of Beauty.

我想要这样:

http://mywebsite.com/blog/beauty

这是我写的规则:

add_rewrite_rule('blog/?$?', 'index.php?cat=$matches[1]', 'top');

有了这个规则,它被翻译成:

http://mywebsite.com/category/beauty/

我想我真的很接近解决方案,但我不知道如何得到它。

非常感谢您的支持。

【问题讨论】:

    标签: wordpress .htaccess mod-rewrite


    【解决方案1】:

    您通常不应该在 Wordpress unless you do it the Wordpress way 中进行自定义 URL 重写。 Wordpress 通常将所有请求重新路由到 index.php,然后根据 url 加载正确的内容。自定义规则可能会中断此过程并导致根本无法加载任何内容。

    默认情况下,类别应显示为http://mywebsite.com/blog/category/{{your-slug}}/。如果您希望类别中没有 /category/ 出现,您可以查看支持此功能的各种 SEO 插件之一,例如 YOAST。只需更改 posts > categories 中的字段,您就可以使用任何您想要的类别 slug 文本。

    编辑

    在我之前的回答中,我假设 Wordpress 安装在 http://mywebsite.com/blog/。如果 Wordpress 站点 url 是 http://mywebsite.com/,您可以使用父子类别来完成这样的 url:http://mywebsite.com/category/blog/{{your-slug}}/。将blog 设为类别,将所需类别设为child categoryblog

    要删除前导 category,您可以在 settings > permalinks 中使用自定义永久链接结构:

    设置自定义结构:/%postname%/

    设置类别基数:.

    【讨论】:

    • URL 中是否包含“/category/”是可选的。主要问题是“/blog/”没有出现。
    • 您的 Wordpress 网站的主页在哪里?是http://mywebsite.com/ 还是http://mywebsite.com/blog?我假设您在子目录中安装了 Wordpress。
    • 哦,好吧,我编辑了我的答案以推荐亲子类别:)
    猜你喜欢
    • 2012-10-25
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 2011-12-10
    • 1970-01-01
    • 2023-03-19
    • 2016-03-04
    相关资源
    最近更新 更多