在子页面列表上显示父页面

时间:2018-07-03 08:40:05

标签: php wordpress

我有一个脚本,该脚本在父页面上显示子页面列表,而在没有当前子页面的情况下显示o子页面列表。

我想在子页面上添加父页面,但是我不知道如何实现。你能帮我吗?

这是我的代码:

if ('page-parent') {
echo '<h3>See also</h3>';
  // if we are on a parent page set the $parent variable to current post id
  // otherwise set $parent variable to current post parent
  $parent = $post->post_parent == 0 ? $post->ID : $post->post_parent;

  // if we use current post parent as $parent, exclude the current page
  $exclude = $parent == $post->post_parent ? $post->ID : false;

  // get all the children
  $args = array( 'parent' => $parent, 'sort_column' => 'menu_order' );
  if ( $exclude ) $args['exclude'] = $exclude;
  $child_pages = get_pages($args);

  // show only if there are children
  if ( ! empty($child_pages) ) {
    global $post;
    foreach ( $child_pages as $post ) { setup_postdata( $post );
    ?>
    <div class="child-thumb">
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </div>
    <?php
    }
    wp_reset_postdata();
  }

}

1 个答案:

答案 0 :(得分:1)

您需要使用'child_of'参数而不是'parent'。 get_pages中的“ parent”表示要获取或不获取父页面。 但是您的案例需要获取给定页面的子代。

因此您必须使用

$args = array( 'child_of' => $parent, 
'sort_column' => 'menu_order' );

要在孩子上方显示一个父页面,可以使用get_post函数:

if ($post->post_parent>0){
$parent_page=get_post($post->post_parent);
echo '<div>'.$parent_page->post_title.'</div>';
}
if ( ! empty($child_pages) ) {
///and so on...

有关更多信息:https://codex.wordpress.org/Function_Reference/get_pages