在unctions.php中加载小部件的最有效方法是什么

时间:2012-06-05 作者:derekshirk

我见过WordPress开发人员使用两种不同的方法从函数中加载自定义小部件。php文件。

第一个:

include("functions/my-custom-widget.php");
第二个:

require_once(dirname(__FILE__) . "/functions/my-custom-widget.php");
以下哪种方法更有效。如果有差异的话,我对性能特别感兴趣。require\\u是否遵循更好的“最佳实践”?

我相信还有很多其他的方法可以做到这一点。如果有人有更好的建议,我很乐意听。

谢谢

2 个回复
最合适的回答,由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警告),允许脚本继续。

结束

相关推荐

How to load WP functions?

我有一个mymail.php 发送电子邮件的脚本(我使用require_once( $_SERVER[\'DOCUMENT_ROOT\'] . \'/wp-includes/class-phpmailer.php\' );.) 并输出纯文本字符串(如“电子邮件发送成功”)我想在我的脚本中使用WP中定义的函数。我要调用的特定函数是get_option() 以检索网站所有者的电子邮件用户。要为特定get_option() 函数以及导入整个WP核心的内容(如主题的.php文件可用的上下文)?