用于自定义POST类型的多个循环以跨行传播数据

时间:2015-05-20 作者:Amesey

如何在自定义post类型循环中拆分值,以便标题位于第一个循环中,该循环在第一个DIV中输出,而内容位于第二个循环中,该循环在第二个DIV中输出?我不知道,两个循环可能不是最好的方式。有人向我提到使用一个循环,然后将每个项存储在一个字符串中,然后拆分字符串。我也不知道怎么做。

我还需要一个新的行开始,一旦数量的职位达到5。

这是我的PHP循环。。。

        $custom_query = new WP_Query( $custom_args );

        query_posts(array( 
                            \'post_type\' => array(\'team\')

                        ) ); 


        if ( $custom_query->have_posts() ) : 

              /* Start my loop */

              while ( $custom_query->have_posts() ) : $custom_query->the_post();

                 echo "<div>". the_title(); . "</div>";

                 echo "<div>". the_content(); . "</div>";


              endwhile;

        endif;
我正在寻找的HTML输出如下。。。

<div class"row">

  <div class="title chris"></div>
  <div class="title darren"></div>
  <div class="title ryan"></div>
  <div class="title john"></div>
  <div class="title emma"></div>

  <div class="content chris"></div>
  <div class="content darren"></div>
  <div class="content ryan"></div>
  <div class="content john"></div>
  <div class="content emma"></div>

</div>

<div class"row">

  <div class="title steve"></div>
  <div class="title ed"></div>
  <div class="title steph"></div>
  <div class="title neil"></div>
  <div class="title claire"></div>

  <div class="content steve"></div>
  <div class="content ed"></div>
  <div class="content steph"></div>
  <div class="content neil"></div>
  <div class="content claire"></div>

</div>

<div class"row">

  <div class="title tarnea"></div>
  <div class="title carl"></div>
  <div class="title kim"></div>
  <div class="title jade"></div>
  <div class="title lee"></div>

  <div class="content tarnea"></div>
  <div class="content carl"></div>
  <div class="content kim"></div>
  <div class="content jade"></div>
  <div class="content lee"></div>

</div>

2 个回复
SO网友:James Cushing

您是否尝试过使用rewind_posts()?

在我看来,您需要做的是要么运行整个查询,只输出标题,然后倒带并输出内容(但是这会输出all 标题放在内容之前,而不是像您建议的那样以5块为一块)或将所有内容包装在循环中,循环每次运行相同的查询,限制为5篇文章,然后每次将offset参数增加5(Pagination Parameters).

编辑:第三个可能冗长的解决方案是将5个标题栏和5个内容栏保存到单独的数组中,然后按照您想要的顺序在最后打印出来。

SO网友:Joonas

你可以试试这样的

$titels = "";
$content = "";
$html = "";
$counter = 1;

while ( $custom_query->have_posts() ) : custom_query->the_post();
   if ( counter % 5 = 0 ) :
      $html = "<div class=\'row\'>" . $titels . $content . "</div>";
      $titels = "";
      $content = "";
   endif; 
   $titels .= "<div>". the_title(); . "</div>";
   $content .= "<div>". the_content(); . "</div>";
   $counter++;
endwhile;

print $html;

结束

相关推荐

SSL/HTTPS Redirect Loop

我似乎无法确保某些页面的安全,我想我已经尽了一切可能。。htaccess重定向iTheme安全插件将站点url更改为HTTPS://li>由于某种原因,这两个插件都不能强制SSL。它只是进入一个重定向循环。与更改类似。htaccess。然而,wooCommerce页面是安全的,我还可以通过HTTPS访问wordpress目录根中的页面,以及上传的内容。我应该从哪里开始查找,或者如何开始调试重定向循环?Wordpress是3.8.5版,主题为“BigBang 1.7.3”。插件列表:Advanced