使WordPress成为核心

开的12年前

关闭5个月前

#23049 关闭 增强 (馄饨)

404的模板层次结构

报告人: mark-k剖面 标记-k 所有者: 约翰百亿的简介 约十亿
里程碑: 优先: 正常的
严重程度: 正常的 版本:
组件: 主题 关键词: has-patch接口 开发人员反馈
重点: 模板 复写的副本:

描述

当url结构与post-permalink结构匹配但该地址没有post时,加载404-{post-type}.php。

当url结构匹配分类永久链接结构但不匹配任何特定的分类标签url时,加载404-{taxonomy}.php。

等等。。。。

这个想法是根据URL引用的上下文创建不同的404页面。例如,如果一个站点有一个博客和一个商店,当URL可能被解释为帖子时,最好显示一个特定于博客的404页面,当URL被解释为产品时,最好是显示特定于商店的404页。

附件(3)

模板.diff(2.2 KB)-由添加贾斯汀布萨 8年前.
23049.差异(2.2 KB)-由添加贾斯廷布萨 7年前.
23049.2.差异(3.7 KB)-由添加约十亿 7年前.

将所有附件下载为:.zip文件

更改历史记录(20)

#1 @谢尔盖·比尤科夫
12年以前

  • 组件更改自主题模板

#2 @珍珠蛋白
11年以前

  • 组件更改自模板主题
  • 焦点 模板补充

#3 @谢尔盖·比尤科夫
10年以前

  • 总结更改自404的模板层次结构404的模板层次结构

#4 随访: @奥本兰
10年以前

你能写一个补丁吗?

#5 答复: 4 @标记-k
10年以前

正在答复奥本兰:

你愿意写补丁吗?

我当然可以试试,

#6 @基督教堂7
9年以前

  • 关键词 需要-补丁补充

#7 @贾斯汀布萨
8年以前

看看附件中的补丁,让我知道你的想法。

因为我们不能使用是_*检查404页面以及类似的内容获取查询对象不会返回任何内容,这会检查是否存在查询变量,如果存在查询变量则加载适当的模板。

您将看到$支票array是一个查询变量,它映射到模板slug,如果存在该查询变量,则将用于构建404模板文件名。

例如,如果我访问的产品不存在于http://localhost/wordpress/product/does-not-exist/,将生成以下模板数组。。。

阵列([0]=>404-单体.php[1] =>404英寸马力[2] =>404英寸马力[3] =>404马力)

类似地,如果我访问一个不存在的产品类别,将构建以下模板数组。。。

阵列([0]=>404-taxonomy-product_cat.php[1] =>404-taxonomy.php[2] =>404-存档.php[3] =>404.php)

总之,以下404模板可以使用此修补程序。。。

  • 404-分类法-{$taxonomy}.php
  • 404-taxonomy.php
  • 404-存档.php
  • 404-类别.php
  • 404吨/马力
  • 404-作者.php
  • 404-日期.php
  • 404-附件.php
  • 404英寸马力
  • 404英寸马力
  • 404-single-{$post_type}.php
  • 404页.php

在补丁中,我尝试遵循模板加载的顺序wp-includes/template-loader.php并包含尽可能多的模板(例如,用single.php模仿404-single.php)。

由于限制而没有意义或无法包含的模板是。。。

  • 嵌入
  • 搜索
  • 首页
  • 岗位型档案
  • 已分页

我不确定是否使用获取查询变量是正确的方法,但考虑到我们可以用来确定404页上的模板的数据似乎有限(如果我错了,请告诉我),这似乎是一个很好的解决方案。

让我知道你的想法!

#8 @贾斯汀布萨
8年以前

  • 关键词 has-patch接口 开发人员反馈补充;需要-补丁远离的

#10 @贾斯汀布萨
7年以前

嘿@obenland!对此有什么想法吗?

#11 @约十亿
7年以前

  • 所有者设置为约十亿
  • 状态更改自新的审查

我可以支持这件事。我可以立即看到的用途404-single-{$post_type}.php.

这里的顺序很重要。它应该与模板加载程序中使用的顺序相匹配:https://core.trac.wordpress.org/browser/tags/4.7.4/src/wp-includes/template-loader.php?marks=46-65号L43

#12 @贾斯廷布萨
7年以前

谢谢,@johnbillion!我检查了一下,它看起来只是需要一个小的调整才能与模板加载器内联,但我可能会误解你。你能看一下新补丁并告诉我吗?

#13 @约十亿
7年以前

  • 里程碑更改自等待审查4.9

@约十亿
7年以前

#14 @约十亿
7年以前

23049.2.差异是简化的404模板层次结构。在测试套件中查找到分类法重写规则错误后,将提供更多详细信息。

#15 @约十亿
7年以前

#41626被标记为副本。

这张票是在松弛(Slack)杰夫保罗的《核心》。查看日志.


7年以前

#17 @约十亿
7年以前

  • 里程碑更改自4.9未来版本
  • 状态更改自审查认可的

需要对上述测试套件错误进行更多的工作和调查。

#18 @约十亿
5个月以前

  • 里程碑 未来版本删除
  • 分辨率设置为旺特菲克斯
  • 状态更改自认可的关闭

尽管我很想把这件事讲进去,但我看不到它会发生。

注:请参见TracTickets公司有关使用的帮助门票。