Load Template Parts with Custom Parameters — a practical guide to Load Template Parts with Custom Parameters themes tutorial with clear examples you can reuse in real projects.
Create reusable helper functions to load template parts and pass custom data to template files for cleaner theme development.
// ===================================
// Get Template Part
// ===================================
function qrs_get_template_part($slug = null, $name = null, array $params = array()) {
global $posts, $post, $wp_did_header, $wp_query, $wp_rewrite, $wpdb, $wp_version, $wp, $id, $comment, $user_ID;
do_action("get_template_part_{$slug}", $slug, $name);
$templates = array();
if (isset($name))
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
$_template_file = locate_template($templates, false, false);
if (is_array($wp_query->query_vars)) {
extract($wp_query->query_vars, EXTR_SKIP);
}
extract($params, EXTR_SKIP);
require($_template_file);
}
// ===================================
// Get Template part for ajax
// ===================================
function qrs_return_get_template_part($slug = null, $name = null, array $params = array()) {
$slug=str_replace("//","/",$slug);
global $wp_query;
do_action("get_template_part_{$slug}", $slug, $name);
$templates = array();
if (isset($name))
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
$_template_file = locate_template($templates, false, false);
if (is_array($wp_query->query_vars)) {
extract($wp_query->query_vars, EXTR_SKIP);
}
extract($params, EXTR_SKIP);
if(!empty($_template_file)){
ob_start();
include($_template_file);
$var=ob_get_contents();
ob_end_clean();
return $var;
}
}