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.
2 Answers
Both are acceptable but not recommended. Use locate_template()
instead because a child theme can overwrite the loaded file then.
Example:
$found = locate_template( 'functions/my-custom-widget.php', TRUE, TRUE );
The first TRUE
tells WordPress not only to search for the file but to load it actually. The second makes it a require_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.