这是一个wordpress项目,但真的是PHP。我正在执行查询以返回最多12个帖子。每组三个帖子都包含在一个名为jobsN
的div中。该div中的每个帖子(项目)都会以item1
,item2
和item3
的形式返回。
item1
类工作正常,但jobs
类不会以1-2-3-4返回。它以1-0-0-0回归。我无法解决我的计数出了什么问题。
正如您从下面的HTML中看到的那样,有一些关于作业计数的东西。这部分在这里处理:
<?php if ($count == 3) {?></div><?php $count = 0; ?><div class="jobs
<?php echo $count; ?>"><?php }; ?>
以下是完整查询:
<?php
query_posts(array(
'post_type' => 'custom_job',
'showposts' => 12
) );
?>
<?php if ( have_posts() ): $contcount = 0; $count = 0;?>
<?php $contcount++; ?>
<div class="jobs<?php echo $contcount; ?>">
<?php while (have_posts()) : the_post(); $count++;?>
<div class="item-<?php echo $count ?>">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<p><?php echo get_the_excerpt(); ?></p>
<a href="<?php the_permalink() ?>">Learn more</a> -->
</div>
<?php if ($count == 3) {?></div><?php $count = 0; ?><div class="jobs<?php echo $count; ?>"><?php }; ?>
<?php endwhile; ?>
</div>
<?php endif; ?>
这是我回来的HTML:
<div class="jobs1">
<div class="item-1">
content
</div>
<div class="item-2">
content
</div>
<div class="item-3">
content
</div>
</div>
<div class="jobs0">
<div class="item-1">
content
</div>
<div class="item-2">
content
</div>
<div class="item-3">
content
</div>
</div>
<div class="jobs0">
<div class="item-1">
content
</div>
<div class="item-2">
content
</div>
<div class="item-3">
content
</div>
</div>
<div class="jobs0">
<div class="item-1">
content
</div>
</div
答案 0 :(得分:1)
使用此行
<?php if ($count == 3) {?></div><?php $count = 0; $contcount++; ?><div class="jobs<?php echo $contcount; ?>"><?php }; ?>
而不是
<?php if ($count == 3) {?></div><?php $count = 0; ?><div class="jobs<?php echo $count; ?>"><?php }; ?>
解决方案:
我在$contcount++
时更新$count==3
并在echo class jobs<?php echo $contcount
中使用
答案 1 :(得分:1)
这一行是问题所在:
<?php if ($count == 3) {?></div><?php $count = 0; ?><div class="jobs<?php echo $count; ?>"><?php }; ?>
如果$ count = 3,则意味着您将显示一个新的作业div,但是你也将$ count = 0,然后你将它回显为0。
将此行转换为:
<?php if ($count == 3) {?></div><?php $count = 0; $countcount++; ?><div class="jobs<?php echo $countcount; ?>"><?php }; ?>
答案 2 :(得分:0)
您在PHP中使用了错误的计数器:
您的代码有这一行:
<?php if ($count == 3) {?></div><?php $count = 0; ?><div class="jobs<?php echo $count; ?>"><?php }; ?>
它应该是
<?php if ($count == 3) { ?></div><?php $count = 0; $contcount++; ?><div class="jobs<?php echo $contcount; ?>"><?php }; ?>
因为$count
存储了该项目,而$contcount
存储了项目块
答案 3 :(得分:0)
试试这个,而不是100%确定它会起作用
<?php
query_posts(array(
'post_type' => 'custom_job',
'showposts' => 12
) );
?>
<?php if ( have_posts() ): $contcount = 0; $count = 0;?>
<?php $contcount++; ?>
<div class="jobs<?php echo $contcount; ?>">
<?php while (have_posts()) : the_post(); $count++;?>
<div class="item-<?php echo $count ?>">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<p><?php echo get_the_excerpt(); ?></p>
<a href="<?php the_permalink() ?>">Learn more</a>
</div>
<?php if ($count == 3): ?>
<?php $count = 0; $countcount++;?>
<div class="jobs<?php echo $contcount; ?>"></div>
<?php endif; ?>
<?php endwhile; ?>
</div>
<?php endif; ?>
编辑:编辑可能的错误。