如何查询来自多个父母的帖子

时间:2016-06-19 12:24:29

标签: wordpress

我想查询当前页面的兄弟姐妹和孩子。

分别使用'post_parent' => $post->post_parent'post_parent' => $post->ID我可以使用它。

我想同时查询

我尝试使用变量“合并”它们,但似乎它不起作用。我得到的输出是网站上的所有页面(与post_parent一样是0)。

完整代码:

<?php
$mysibling        = $post->post_parent;
$mychild          = $post->ID;
$mychildmysibling = array( $mychild, $mysibling );

$args = array(
    'post_type'       => 'page',
    'posts_per_page'  => -1,
    'post_parent'     => $mychildmysibling,  
    'sort_order'      => 'asc'
 );

$parent = new WP_Query( $args );

if ( $parent->have_posts() ) : ?>

<ul>
    <?php while ( $parent->have_posts() ) : $parent->the_post(); ?>
        <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile ?>
</ul>

<?php endif; wp_reset_query(); ?>

1 个答案:

答案 0 :(得分:3)

您的查询应如下所示:

$args = array(
  'post_type'       => 'page',
  'posts_per_page'  => -1,
  'post_parent__in' => $mychildmysibling,  
  'sort_order'      => 'asc'
);

如本页所述:https://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters

  

post_parent(int) - 使用页面ID仅返回子页面。设为0   仅返回顶级条目    post_parent__in(数组) - 使用帖子   IDS。指定父级在数组中的帖子。 (从那时起可用   版本3.6)

将其视为MySQL问题,在处理多个值时使用"IN" clause