使用META_QUERY嵌套查询

时间:2011-11-05 作者:Griffin

我正在尝试构建一个查询,其中列出具有特定自定义字段值的自定义类型的帖子。然后我需要列出帖子中每个帖子的子帖子,这些子帖子还需要通过特定的自定义字段值进行过滤。

这是我当前的代码,它不起作用。任何帮助都将不胜感激。

非常感谢。

<?php
    $args = array(
        \'post_type\' => \'clients-placements\',
        \'posts_per_page\' => -1,
        \'post_status\' => \'publish\',
        \'order\' => \'ASC\',
        \'meta_query\' => array(
            array(
                \'key\' => \'type\',
                \'value\' => \'Client\'
            ),
            array(
                \'key\' => \'featured\',
                \'value\' => \'yes\'

            )
        )                       
    );
    $the_query = new WP_Query( $args ); 
    ?>

    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

        <?php get_template_part( \'content\', \'clients\' );?>

    <ul id="placements">
    <?php
        $args = array(
            \'post_type\' => \'clients-placements\',
            \'posts_per_page\' => -1,
            \'post_status\' => \'publish\',
            \'order\' => \'ASC\',
            \'post_parent\' => $post->ID,
            \'meta_query\' => array(
                array(
                    \'key\' => \'type\',
                    \'value\' => \'Placement\',
                ),
                array(
                    \'key\' => \'featured\',
                    \'value\' => \'yes\',

                )
            )   
        );
        $the_query = new WP_Query( $args ); 

        // The Loop
        while ( $the_query->have_posts() ) : $the_query->the_post();
            echo \'<li>\';
            the_title();
            the_content();
            echo \'</li>\';
        endwhile;


    ?>
</ul>   
    <?php endwhile; ?>

2 个回复
最合适的回答,由SO网友:Milo 整理而成

您的内部查询正在覆盖外部查询,您已将两者都分配给$the_query.

SO网友:Sagive

只需更改以下内容:

  <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
对此:

  <?php while ( $the_query->have_posts() ) : the_post(); ?>
再解释一下,如果这是该页面中唯一的循环,您可以像这样做得更简单(根本不用使用“$the\\u query”)。。

示例:

<?php 
    query_posts(array( 
        \'post_type\' => \'portfolio\',
        \'showposts\' => 10 
    ) );  
?>
<?php while (have_posts()) : the_post(); ?>
//Here would be the content you want to loop...

结束

相关推荐