实际的/ategory/目录应该是404吗?这是正常的可湿性粉剂行为吗

时间:2019-04-08 作者:Henry

我不确定这是否“正常”,但在我的WP安装中,“category”的实际目录抛出404错误。

因此,例如,如果我有一个名为“apples”的类别,那么与“apples”类别关联的每个帖子或页面都有以下URL字符串:

my-site.com/category/apples/ 
以上内容对我来说很好。

然而,如果我从URL中删除“apples”,那么会生成一个404错误,我确信这是正确的,或者应该有一个索引页或其他?

我之所以问这个问题,是因为我创建了一些称为“美国各州”的自定义分类法,其工作原理如下:

my-site.com/us-states/florida < loads great with archive

my-site.com/us-states/ < Error 404
是否有任何方法可以使实际分类法的主页成为模板页面或其他页面?

谢谢

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

是的,这是正常的行为。WordPress使用一组重写规则来处理请求。以下是将匹配与类别相关的请求的规则:

[category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?category_name=$matches[1]&feed=$matches[2]
[category/(.+?)/(feed|rdf|rss|rss2|atom)/?$] => index.php?category_name=$matches[1]&feed=$matches[2]
[category/(.+?)/page/?([0-9]{1,})/?$] => index.php?category_name=$matches[1]&paged=$matches[2]
[category/(.+?)/?$] => index.php?category_name=$matches[1]
如您所见,所有这些请求都要求/category/.

这是有道理的。

  • category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/ - 将匹配类别的提要[category/(.+?)/(feed|rdf|rss|rss2|atom)/ - 是源的较短URLcategory/(.+?)/page/?([0-9]{1,})/ - 支持分页category/(.+?)/ - 只是类别列表(第一页)
,所以上面的所有URL都与此分类法中的给定术语相关,并且您知道哪个术语,因为它是在URL中定义的。

另一方面,当您转到/category/? 未定义任何术语,因此无法选择其中任何一个。那么它应该显示你网站上的所有帖子吗?(博客索引已经做到了这一点)。

有时在这样的URL上显示类别列表是有意义的,但这不是一种常见做法。

您始终可以添加自定义重写规则来处理此类请求。

SO网友:Pat_Morita

可以为类别树的每个级别创建模板文件。还有你提到的那个。如果创建名为“类别”的模板。php或归档。php WordPress将在这个级别上加载它。将其放在主题根文件夹中。

在此处查找有关视图层次结构的更多详细信息:https://developer.wordpress.org/themes/basics/template-hierarchy/#examples

相关推荐

Dropdown menu for categories

当我使用下面的代码时<?php wp_nav_menu( array(\'menu\' => \'categories\' )); ?> 我可以创建一个新的菜单来列出我创建的wordpress中的所有类别。我用它在页面中间列出所有类别。我现在的问题是:有没有一种简单的方法可以为存在的每个子类别创建下拉菜单?那么,当我点击一个特定的类别时,它的子类别会显示出来吗?