2016-10-04 123 views
1

我需要獲取頁面父模板名稱。我知道我可以使用get_page_template()作爲當前頁面,但似乎沒有辦法讓父母獲得一個。獲取wordpress父模板名稱

是否有可能只獲取模板名稱而不是它的路徑?

回答

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