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;
}
}