The get_template_part_{$slug} WordPress PHP action fires before the specified template part file is loaded.
Usage
add_action('get_template_part_example', 'custom_function', 10, 3); function custom_function($slug, $name, $args) { // your custom code here }
Parameters
$slug
(string): The slug name for the generic template.$name
(string|null): The name of the specialized template.$args
(array): Additional arguments passed to the template.
More information
See WordPress Developer Resources: get_template_part_{$slug}
Examples
Adding custom markup before a template part
This example adds a custom div element with a class name “pre-template” before loading the ‘content’ template part.
add_action('get_template_part_content', 'add_pre_template_markup', 10, 3); function add_pre_template_markup($slug, $name, $args) { echo '<div class="pre-template">This is added before the template part</div>'; }
Logging the template part being loaded
This example logs the template part being loaded to a custom log file.
add_action('get_template_part_content', 'log_template_part', 10, 3); function log_template_part($slug, $name, $args) { error_log("Template part loaded: {$slug}-{$name}"); }
Modifying the global post object
This example modifies the global post object’s title before loading the ‘content’ template part.
add_action('get_template_part_content', 'modify_post_title', 10, 3); function modify_post_title($slug, $name, $args) { global $post; $post->post_title = 'Modified: ' . $post->post_title; }
Adding a custom attribute to a template part
This example adds a custom data attribute to the ‘content’ template part.
add_action('get_template_part_content', 'add_custom_data_attribute', 10, 3); function add_custom_data_attribute($slug, $name, $args) { echo 'data-custom-attr="example"'; }
Conditionally loading a different template part
This example loads a different template part ‘content-special’ instead of the default ‘content’ template part based on a condition.
add_action('get_template_part_content', 'conditionally_load_special_template', 10, 3); function conditionally_load_special_template($slug, $name, $args) { if (is_singular('post')) { get_template_part('content', 'special'); exit; } }