【发布时间】:2015-05-19 14:36:22
【问题描述】:
我需要一个循环来调用名为“团队成员”的自定义帖子类型,其中的 slug 是“团队”。团队成员以五行显示,每个成员由自己的头像组成,并在头像列表之外的单独 DIV 中向下滑动切换内容。我写了一个基本的循环结构,我不确定它是最好的还是正确的方法。有人可以帮帮我吗?
/* ROW 1 */
query_posts('showposts=5');
$ids = array();
/* Loop 1 A - displays the row of avatars */
while (have_posts()) : the_post();
$ids[] = get_the_ID();
the_title();
endwhile;
/* Loop 1 B - displays the slide down content in new row for each avatar above */
while (have_posts()) : the_post();
$ids[] = get_the_ID();
the_content();
endwhile;
/* ROW 2 */
//Write code to do second row if number posts greater than 5.
//If post greater than 5 do...
/* Loop 2 A - displays the row of avatars */
query_posts(array('post__not_in' => $ids, 'showposts=5');
while (have_posts()) : the_post();
the_title();
endwhile;
/* Loop 2 B - displays the slide down content in new row for each avatar above */
while (have_posts()) : the_post();
the_content();
endwhile;
/* ROW 3 */
//Write code to do third row if number posts greater than 15.
//If post greater than 10 do...
/* Loop 3 A - displays the row of avatars */
$ids_row_two = query_posts(array('post__not_in' => $ids));
$ids_row_three = query_posts(array('post__not_in' => $ids_row_three));
query_posts(array('post__not_in' => $ids_row_three, 'showposts=5'));
while (have_posts()) : the_post();
$ids[] = get_the_ID();
the_title();
endwhile;
/* Loop 3 B - displays the slide down content in new row for each avatar above */
while (have_posts()) : the_post();
$ids[] = get_the_ID();
the_content();
endwhile;
这是我希望输出的 HTML 结构...
<!-- row 1 -->
<!-- Avatars -->
<div class="member_block">
<div class="container avatars">
<!-- avatar 1 --->
<div id="show_ryan" class="box five columns" data-target="#member_ryan">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/ryan.png">
<h4 class="name">Ryan</h4>
<p class="position">Creative Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/ryan.jpg">
</div>
</div>
<!-- avatar 2 --->
<div id="show_brian" class="box five columns" data-target="#member_brian">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/brian.png">
<h4 class="name">Brian</h4>
<p class="position">Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/brian.jpg">
</div>
</div>
<!-- avatar 3 --->
<div id="show_emma" class="box five columns" data-target="#member_emma">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/emma.png">
<h4 class="name">Emma</h4>
<p class="position">Creative Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/emma.jpg">
</div>
</div>
<!-- avatar 4 --->
<div id="show_john" class="box five columns" data-target="#member_john">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/john.png">
<h4 class="name">John</h4>
<p class="position">Creative Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/john.jpg">
</div>
</div>
<!-- avatar 5 --->
<div id="show_neil" class="box five columns" data-target="#member_neil">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/neil.png">
<h4 class="name">Neil</h4>
<p class="position">Creative Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/neil.jpg">
</div>
</div>
</div><!-- container -->
<!-- each team member's slide down content -->
<div class="member_row">
<div class="container">
<!-- avatar 1 content --->
<div id="member_ryan" class="member-info">
<? the_content(); ?>
</div><!-- //Ryan -->
<!-- avatar 2 content --->
<div id="member_brian" class="member-info">
<? the_content(); ?>
</div>
<!-- avatar 3 content --->
<div id="member_emma" class="member-info">
<? the_content(); ?>
</div>
<!-- avatar 4 content --->
<div id="member_john" class="member-info">
<? the_content(); ?>
</div>
<!-- avatar 5 content --->
<div id="member_neil" class="member-info">
<? the_content(); ?>
</div>
</div><!-- .container -->
</div><!-- .member_row -->
<!-- row 2 -->
<!-- Avatars -->
<div class="member_block">
<div class="container avatars">
<!-- avatar 1 --->
<div id="show_ryan" class="box five columns" data-target="#member_ryan">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/ryan.png">
<h4 class="name">Ryan</h4>
<p class="position">Creative Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/ryan.jpg">
</div>
</div>
<!-- avatar 2 --->
<div id="show_brian" class="box five columns" data-target="#member_brian">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/brian.png">
<h4 class="name">Brian</h4>
<p class="position">Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/brian.jpg">
</div>
</div>
<!-- avatar 3 --->
<div id="show_emma" class="box five columns" data-target="#member_emma">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/emma.png">
<h4 class="name">Emma</h4>
<p class="position">Creative Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/emma.jpg">
</div>
</div>
<!-- avatar 4 --->
<div id="show_john" class="box five columns" data-target="#member_john">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/john.png">
<h4 class="name">John</h4>
<p class="position">Creative Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/john.jpg">
</div>
</div>
<!-- avatar 5 --->
<div id="show_neil" class="box five columns" data-target="#member_neil">
<div class="avatar avatar-on-hidden">
<img src="<?php bloginfo('template_directory'); ?>/img/team/neil.png">
<h4 class="name">Neil</h4>
<p class="position">Creative Director</p>
</div>
<div class="avatar2 avatar-on-hover">
<img src="<?php bloginfo('template_directory'); ?>/img/team/neil.jpg">
</div>
</div>
</div><!-- container -->
<!-- each team member's slide down content -->
<div class="member_row">
<div class="container">
<!-- avatar 1 content --->
<div id="member_ryan" class="member-info">
<? the_content(); ?>
</div><!-- //Ryan -->
<!-- avatar 2 content --->
<div id="member_brian" class="member-info">
<? the_content(); ?>
</div>
<!-- avatar 3 content --->
<div id="member_emma" class="member-info">
<? the_content(); ?>
</div>
<!-- avatar 4 content --->
<div id="member_john" class="member-info">
<? the_content(); ?>
</div>
<!-- avatar 5 content --->
<div id="member_neil" class="member-info">
<? the_content(); ?>
</div>
</div><!-- .container -->
</div><!-- .member_row -->
</div><!-- .member_block -->
【问题讨论】:
-
您不需要执行 3 个单独的循环来获得 3 行。在你的循环之前,初始化一个计数器,比如
$x=0;,然后每次迭代你都会像$x++;一样增加$x,然后你可以用if($x%5==0)检查你是否在5的倍数上,如果把你的html 结束/开始下一行。此外,当您在循环中时,您可以写出隐藏的 div 内容,使用该计数器为每个内容分配一个唯一的 id,然后使用 javascript 进行隐藏/显示。