关于模板加载.php文件的问题

时间:2021-02-22 作者:Álvaro Franz

我正在研究WP代码,对/wp-includes/template-loader.php 文件,该文件处理必须为特定URL请求加载的模板。

if($template = apply_filters(\'template_include\', $template)){
    include($template);
}elseif(current_user_can(\'switch_themes\')){
    $theme = wp_get_theme();
    if($theme->errors()){
        wp_die($theme->errors());
    }
}
第一部分非常清楚。已将某个模板设置为加载,WP可以在继续之前对其进行筛选。

但我不明白它的第二部分。

wp_get_theme() 文档$theme 将包含一个主题对象。但是没有什么被包括在内,所以实际上什么都没有发生。

这样做的目的是什么?

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

条件优先检查从template_include hook. 在大多数情况下,会找到模板,不会出现问题。只有在以下条件下,我们才会进入第二个条件template_include 找不到或无法加载模板。然后我们看看WP_Theme object, 它会做一些基线检查,看看主题是否有问题。您可以查看链接的WP\\u主题对象以查看可以生成哪些错误,但通常只是确保主题是可访问和可读的。如果主题出现严重错误,它会向对象添加一个通知,并将其显示给用户以修复错误。

请注意,此错误只会显示给具有切换主题功能的登录用户(默认情况下为administrators)。想必,他们会知道如何修复错误,或将问题升级到需要的人。

如果主题没有任何问题,则假定它是故意遗漏的,或者是用户错误(即文件名错误或拼写错误)。在文件目录中检查类似名称的模板是不合理的。如果故意遗漏了缺失的模板,那么在该模板上出错是不合理的。