It’s important to have common language, naming conventions, and a consistent structure for your code. Flexibility is great in a lot of ways but loosely coupled names/meanings can create confusion, sloppy code, or the dreaded mental overhead of trying to pick the perfect name for something.
For this reason I like to force the following rules for naming/organizing files that generate output.
Templates: A file that composes output top to bottom, from outputting file headers to the end of the request response. Loaded through the
Partials: A chunk of output that is not a complete template. Output through the
While partials are a template of sorts, I like to make this distinction for the sake of clarity. It’s also encouraged by some of WordPress’ naming conventions. In my mind, the idea of loading a file from
get_template_part() makes a lot of sense. I’m loading a part and it’s in ‘partials’. On the higher order side of things, loading a file from
/templates through the
template_include filter makes a lot of sense too.
I really wish WordPress would have enforced some structure like this from the get go instead of tossing everything into the theme root folder. I’ll expand on some solutions to force WordPress to be a bit more organized later on, as well as going into detail about how I organize my partials.