wordpress nested loop

时间:2014-06-27 作者:ashraf

我正在构建嵌套循环查询。我有一个元框,可以捕获邮件id(分类器和转发器)。到目前为止,我的代码

while ( have_posts() ) : the_post();
    ?>
<div id="<?php echo $post->post_name; ?>">
    <h1><?php the_title(); ?></h1>
    <?php
    the_content();


    $urls = get_post_meta( get_the_ID(), \'mymeta_url_group\', false );

    foreach ( $urls as $url ) {
        //echo $url["mymeta_url"];
        foreach ( $url[\'mymeta_slider\'] as $u ) {
            //echo "$u<br> "; shows post id like 67 68 56 etc

            $my_query = new WP_Query( array( \'post_type\' => \'slider\', \'p\' => "\'.$u  .\'" ) );
            if ( $my_query->have_posts() ) {
                while ( $my_query->have_posts() ) {
                    $my_query->the_post();
                    the_title();
                }
            }
            wp_reset_postdata();
        }
但我的输出结果重复了。也就是说,帖子类型滑块有3篇帖子查询显示6篇帖子重复了两次。

1 个回复
最合适的回答,由SO网友:Hendrik Luehrsen 整理而成

我是否正确地看到,您正在对要检索的每个帖子进行WP\\U查询?这是非常低效的,您可以使用WP\\u查询提供的post\\u-in参数。(http://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters)

foreach ( $urls as $url ) {
    //echo $url["mymeta_url"];
    foreach ( $url[\'mymeta_slider\'] as $u ) {
        //echo "$u<br> "; shows post id like 67 68 56 etc
        $posts_to_recive[] = $u;
    }
    $my_query = new WP_Query( array( \'post_type\' => \'slider\', \'post__in\' => $posts_to_recive ) );

    if ( $my_query->have_posts() ) {
       while ( $my_query->have_posts() ) {
            $my_query->the_post();
            the_title();
       }
    }

    wp_reset_postdata();
}
然而,这是非常低效的。保持WP\\U查询量尽可能低。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post