在Wordpress中显示兄弟页面,包括当前页面

时间:2017-05-09 03:37:13

标签: wordpress wordpress-theming

我有这样的页面结构:

  • 食品

    • 奶酪
    • 水果
    • 糖果
  • 音乐

    • 舞蹈
    • 民歌

在子页面上,我想要一个显示兄弟姐妹的菜单,包括当前页面。例如,如果我正在使用水果'页面我想看到: 奶酪水果肉类 糖果

'水果'不应该有链接,因为它是当前页面。

我已经尝试了这个,但它没有包含当前页面:

<?php
  wp_list_pages(array(
 'child_of' => $post->post_parent,
 'exclude' => $post->ID,
 'depth' => 1
  ));
?>

2 个答案:

答案 0 :(得分:0)

这是您需要做的逻辑。首先获得帖子父ID:

$post_parent_id = wp_get_post_parent_id( $post_ID );

然后获取父页面的子项:

$my_wp_query = new WP_Query();
$all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'posts_per_page' => '-1' , 'post__in' => array($post_parent_id)));

$children = get_page_children( $post_parent_id, $all_wp_pages );

echo '<pre>' . print_r( $children, true ) . '</pre>';

答案 1 :(得分:0)

您当前的代码已排除参数,只需删除'exclude' => $post->ID,这样您就可以看到当前页面...

<?php
  wp_list_pages(array(
 'child_of' => $post->post_parent,
 'depth' => 1
  ));
?>

并且要使用不合格的请使用以下风格

<style type="text/css">
    .current_page_item a{
   pointer-events: none;
   cursor: default;
   color: #000;
}
</style>

所以最后的代码是

<style type="text/css">
    .current_page_item a{
   pointer-events: none;
   cursor: default;
   color: #000;
}
</style>

<?php
  wp_list_pages(array(
 'child_of' => $post->post_parent,
 'depth' => 1
  ));
?>