Get parent of current page

时间:2017-08-01 作者:Perepelenok

请帮助我:我需要获取当前页面的父级,换句话说:获取$direct\\u parent的父级。谢谢

<?php 
    global $post;
    $direct_parent = $post->post_parent;
    $parent = $direct_parent->post_parent;
wp_list_pages( array(
    \'child_of\' => $parent,
    \'title_li\'     => false,
    \'depth\' => 1
) );
?>
此代码无效(

2 个回复
SO网友:Sabbir Hasan

尝试使用get_post_ancestors. 以下是您如何将其应用于您的案例中:

<?php
    global $wp_query;
    $post = $wp_query->post;
    $ancestors = get_post_ancestors($post);
    if( empty($post->post_parent) ) {
        $parent = $post->ID;
    } else {
        $parent = end($ancestors);
    } 
    if(wp_list_pages("title_li=&child_of=$parent&echo=0" )) {                
        wp_list_pages("title_li=&child_of=$parent&depth=1" ); 
    } 
?>
您可能需要删除深度参数以显示第三级页面。

如果有帮助,请告诉我!

SO网友:Manoj Mohan

代替$parent 在里面child_of 的参数wp_list_pages 通过parent->ID.wp_list_pages 需要post id而不是post对象。

<?php 
  global $post;
  $direct_parent = $post->post_parent;
  $parent = $direct_parent->post_parent;
  wp_list_pages( array(
   \'child_of\' => $parent,
   \'title_li\'     => false,
   \'depth\' => 1
 ) );
?>

结束