Add Class After 4th Post

时间:2013-07-04 作者:Noob Theory

我需要在第四篇文章后面加一个“div”。我在页面上显示了8篇文章,我在上面使用的代码显示了第4和第8页之后的div。。。o只需要第四个,而不是每个第四个,就在第一个第四个之后。

<?php if (have_posts()) : $count = 0; ?>
  <?php query_posts("showposts=8&post_type=vender_list&orderby=rand");?>
   <?php while (have_posts()) : the_post(); ?>
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <?php echo eh_postImage(240,240,1); ?>
     <?php the_title(); ?>
     <?php the_content_rss(\'\', FALSE, \'\', 60); ?>
    </article>
<?php if ($count % 4 == 3) { ?>
<div class="vender_hr"></div>
<?php } ?>
   <?php $count++;  ?>
<?php endwhile; endif; wp_reset_query();?>

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

检查一下$wp_query->current_post 而不是使用它mod 操作人员

if ($wp_query->current_post === 4) { ?>
    <div class="vender_hr"></div>
<?php }
但不要使用query_posts. 新建WP_Query 对象你所做的有点奇怪。您正在检查是否有帖子,然后删除主查询,从而使have_posts 检查您刚才所做的,然后循环浏览帖子集。看起来应该更像这样:

$qry = new WP_Query("posts_per_page=8&post_type=post&orderby=rand");
if ($qry->have_posts()) { 
  while ($qry->have_posts()) {
    $qry->the_post(); ?>
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <?php echo eh_postImage(240,240,1); ?>
    <?php the_title(); ?>
    <?php the_content_rss(\'\', FALSE, \'\', 60); ?>
    </article><?php 
    if ($qry->current_post === 4) { ?>
      <div class="vender_hr"></div><?php 
    } 
  }
} 
此外,the_content_rss 自WpordPress 2.9以来已被弃用。如果你有debugging enabled 你应该在工作时看到通知。

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register