I have seen WordPress developers use two different methods for loading custom widgets from the functions.php file.
The first:
include("functions/my-custom-widget.php");
The second:
require_once(dirname(__FILE__) . "/functions/my-custom-widget.php");
Which one of these methods is more efficient. I’m particularly interested in performance if there is a difference at all. Does the require_once follow better ‘best practices’ ?
I’m sure there are plenty of other ways of doing this. If anyone has a better recommendation I would love to hear it.
Thanks.
Both are acceptable but not recommended. Use
locate_template()
instead because a child theme can overwrite the loaded file then.Example:
The first
TRUE
tells WordPress not only to search for the file but to load it actually. The second makes it arequire_once
call.The function return the path to the located file in case you need it later. If nothing is found it returns an empty string.
require_once
(PHP documentation)This check will take more time. If you know what you’re doing (including), then you should ditch the
_once
part and save time.EDIT: you won’t see the difference with only a few files. But if you don’t include lots of files, you won’t mess up your include/require either with a thing as simple as a WP theme, so IMHO there’s no point in preventing multiple calls to the same file.
About the difference between
require()
andinclude()
: