복붙노트

[WORDPRESS] WordPress 상위 템플릿 이름을 가져옵니다

WORDPRESS

WordPress 상위 템플릿 이름을 가져옵니다

해결법


  1. 1.

    You can try this for get parent page template name
    /********** GET PAGES BY PARAMS ************/
    
    /*-- Get root parent of a page --*/
    function get_root_page($page_id) 
    {
        global $wpdb;
    
        $parent = $wpdb->get_var("SELECT post_parent FROM $wpdb->posts WHERE post_type='page' AND ID = '$page_id'");
    
        if ($parent == 0) 
            return $page_id;
        else 
            return get_root_page($parent);
    }
    
    /*-- Get page name by ID --*/
    function get_page_name_by_ID($page_id)
    {
        global $wpdb;
        $page_name = $wpdb->get_var("SELECT post_title FROM $wpdb->posts WHERE ID = '$page_id'");
        return $page_name;
    }
    
    /*-- Get page ID by Page Template --*/
    function get_page_ID_by_page_template($template_name)
    {
        global $wpdb;
        $page_ID = $wpdb->get_var("SELECT post_id FROM $wpdb->postmeta WHERE meta_value = '$template_name' AND meta_key = '_wp_page_template'");
        return $page_ID;
    }
    
    /* -- Get page ID by Custom Field Value -- */
    function get_page_ID_by_custom_field_value($custom_field, $value)
    {
        global $wpdb;
        $page_ID = $wpdb->get_var(" 
            SELECT wposts.ID
            FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
            WHERE wposts.ID = wpostmeta.post_id 
            AND wpostmeta.meta_key = '$custom_field' 
            AND (wpostmeta.meta_value like '$value,%' OR wpostmeta.meta_value like '%,$value,%' OR wpostmeta.meta_value like '%,$value' OR wpostmeta.meta_value = '$value')        
            AND wposts.post_status = 'publish' 
            AND wposts.post_type = 'page'
            LIMIT 0, 1");
    
        return $page_ID;
    }
    
  2. from https://stackoverflow.com/questions/39862290/get-wordpress-parent-template-name by cc-by-sa and MIT license