我见过WordPress开发人员使用两种不同的方法从函数中加载自定义小部件。php文件。
第一个:
include("functions/my-custom-widget.php");
第二个:
require_once(dirname(__FILE__) . "/functions/my-custom-widget.php");
以下哪种方法更有效。如果有差异的话,我对性能特别感兴趣。require\\u是否遵循更好的“最佳实践”?
我相信还有很多其他的方法可以做到这一点。如果有人有更好的建议,我很乐意听。
谢谢
最合适的回答,由SO网友:fuxia 整理而成
两者都可以接受,但不推荐。使用locate_template()
相反,因为子主题可以覆盖加载的文件。
示例:
$found = locate_template( \'functions/my-custom-widget.php\', TRUE, TRUE );
第一个
TRUE
告诉WordPress不仅要搜索文件,还要实际加载文件。第二个是
require_once
呼叫
函数返回定位文件的路径,以备以后需要。如果未找到任何内容,则返回空字符串。
SO网友:FelipeAls
require_once
(PHP documentation)
将检查文件是否已包含,如果已包含,则不再包含(要求)该文件。
这张支票需要更多的时间。如果你知道自己在做什么(包括),那么你应该放弃_once
分开,节省时间。
编辑:您不会看到只有几个文件的区别。但是如果你没有包含很多文件,你也不会因为一个简单的WP主题而把你的包含/要求搞砸,所以我认为没有必要阻止对同一个文件的多次调用。
关于require()
和include()
:
require 与相同include 除非出现故障,否则还会产生致命的E\\u COMPILE\\u错误级别错误
换句话说,它将停止脚本,而include只发出警告(E\\U警告),允许脚本继续。