10

I'm using the theme-check plugin to check my theme for errors and recommendations, I'm using get_template_part() in theme files like header.php and index.php but in functions.php I'm using include_once() theme-check is not pointing at these, it's pointing at include_once used in a widgets.php file which is included in functions.php

my question is should we use get_template_part() instead of all include_once() and include() or just use it for getting frequently used markup only ? I know it's only recommended to use get_template_part() but I like to follow best practices and recommendations.

thanks in advance.

2
  • Looking at plugin code from some of the core contributors and other WP experts, I've never seen get_template_part() used this way although it doesn't seem wrong. The point of the function, though, is to reuse parts of code which would differentiate it from the need to include a file once. I'm interested in seeing what others have to say about this. Apr 7, 2012 at 14:23
  • Those are recommendations, if you're not including template part it's more simple to use include_once().
    – Mamaduka
    Apr 7, 2012 at 14:56

1 Answer 1

4

Your functions.php doesn’t create output, so you should use locate_template().

Example:

locate_template( 'php/functions.nav-menu.php', TRUE, TRUE );

You’ll find this function in wp-includes/theme.php. The first parameter is the file path relative to the theme root, the second tells WordPress to load it (or not), and the third to load it just once.

Now a child theme can override the file by just placing a file with the same name to the same place in its own theme root.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.