如何获取当前页面离父ID最近的ID?

时间:2014-05-07 作者:Mr.Happy

我正在尝试获取当前页面最接近的父id,而不是顶级id。例如,我添加了如下页面:

enter image description here

现在如果我在Junior Design Award 2013 page我想获取他的家长id765 非顶级父id691

我尝试了下面的代码,但我得到了顶级id,这是691.

作用php

function get_root_parent_id( $page_id ) {
    global $wpdb;
    $parent = $wpdb->get_var( "SELECT post_parent FROM $wpdb->posts WHERE post_type=\'page\' AND post_status=\'publish\' AND ID = \'$page_id\'" );
    if( $parent == 0 ){
        return $page_id;
    }else{
        return get_root_parent_id( $parent );
    } 
}
第页。php

global $post;     // if outside the loop
$page_object = get_queried_object();
$page_id  = get_queried_object_id(); // Get current page id

echo $root_parent_id = get_root_parent_id( $page_id );
有什么想法吗?

谢谢

1 个回复
最合适的回答,由SO网友:Avenger 整理而成

试试这个。

global $post;     // if outside the loop
$page_object = get_queried_object();
$page_id  = get_queried_object_id(); // Get current page id

$args = array(
    \'sort_order\' => \'ASC\',
    \'sort_column\' => \'post_title\',
    \'hierarchical\' => 1,
    \'exclude\' => \'\',
    \'include\' => $page_id,
    \'meta_key\' => \'\',
    \'meta_value\' => \'\',
    \'authors\' => \'\',
    \'child_of\' => 0,
    \'parent\' => -1,
    \'exclude_tree\' => \'\',
    \'number\' => \'\',
    \'offset\' => 0,
    \'post_type\' => \'page\',
    \'post_status\' => \'publish\'
); 
$pages = get_pages($args);

$parentID = $pages[0]->post_parent; // Get current page parent id
这将为您提供当前页面父id,而不是顶级id$parentID = $pages[0]->post_parent;

结束

相关推荐

Taxonomy landing pages

我想为我的自定义分类法创建一个登录页。现在,我创建了三种自定义分类法/country/[terms] /person/[terms] /interrests/[terms] 我想为每个分类法创建一个列表页,这个列表页应该列出它们包含的所有[术语]。并链接到正常(taxonomy-[term].php /taxonomy/[term]) url。实现这一点的正确方法是什么?首先我想的是template_redirect 并创建自定义taxonomy-list.php 要包含在使用手