代码之家  ›  专栏  ›  技术社区  ›  Liu Kang

如何查询来自多个家长的帖子

  •  4
  • Liu Kang  · 技术社区  · 8 年前

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

    使用 '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 回复  |  直到 8 年前
        1
  •  3
  •   superhero    8 年前

    您的查询应如下所示:

    $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

    父节点后(int) -使用页面id只返回子页面。设置为0 只返回顶级条目。
    post_parent_in(数组) -使用岗位 ID。指定其父级位于数组中的帖子。(自以下日期起提供 版本3.6)

    将其视为一个MySQL问题,您在其中使用 "IN" clause 使用多个值时。