themes

Load Template Parts with Custom Parameters

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

Leave a reply

Your email address will not be published. Required fields are marked *