What is the most efficient method for loading widgets in functions.php

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
2

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.

Leave a Comment