2012-04-26 58 views
0
<?php if (have_posts()) : ?> 

<?php 
$count = 1; 
$featuredPosts = 9; 
query_posts('showposts=19'); 
?> 

<div class="articleTile column_3"> 

<?php while (have_posts()) : the_post(); ?> 

    <?php if($count > $featuredPosts) : ?> 

     <!--change class to articleList column_2--> 

    <?php endif; ?> 

<div class="column"> 

    <?php get_template_part('content', 'featured'); ?> 

    <!-- #post-<?php the_ID(); ?> --> 

</div> 

<?php 
$count = $count ++; 
endwhile; 
?> 

</div> 

我怎么会去瞄准<div class="articleTile column_3">元素,当计数变量达到10改变其类的内部元素的CSS类?更改驻留在循环外从环

编辑:我是一个白痴抱歉。

我已经成功做到这一点的:

<?php if (have_posts()) : ?> 

<?php 
$count = 1; 
$featuredPosts = 9; 
query_posts('showposts=19'); 
?> 

<div class="articleTile column_3"> 

<?php while (have_posts()) : the_post(); ?> 

    <?php if($count == $featuredPosts + 1) : ?> 

    <?php echo $count ?> 
     </div> 
     <div class="articleList column_2"> 

    <?php endif; ?> 

<div class="column"> 
<?php echo $count ?> 
    <?php get_template_part('content', 'featured'); ?> 

    <!-- #post-<?php the_ID(); ?> --> 

</div> 

<?php 
$count = $count +1; 
endwhile; 
?> 

</div> 

我原来的方式根本就不需要工作没有与不同类别的第二个元素。我很抱歉。感谢他们的快速反应,他们帮助我指出了正确的方向。

+1

你将不得不赶在变量中环的输出,并呼应容器事后含量 – DaveRandom 2012-04-26 09:15:38

回答

2

里面是不是更聪明,只是运行一个循环首先要检查什么总数会是,然后用它来设置正确的课程?

也许这样的事情? :

<?php if (have_posts()) : ?> 

<?php 
$count = 1; 
$count_posts = 1; 
$featuredPosts = 9; 
$class = 'column_3'; 

query_posts('showposts=19'); 

/* Run loop */ 
while (have_posts()) : the_post(); 

    $count_posts = $count_posts ++; 
endwhile; 

if ($count_posts > $featuredPosts) { $class = 'column_2'; } 

?> 

<div class="articleTile <? echo $class; ?>"> 

<?php while (have_posts()) : the_post(); ?> 



<div class="column"> 

    <?php get_template_part('content', 'featured'); ?> 

    <!-- #post-<?php the_ID(); ?> --> 

</div> 

<?php 
$count = $count ++; 
endwhile; 
?> 

</div> 
+0

感谢您的示例。我很愚蠢。我通过决议解决了原来的问题。对不起。 – 2012-04-26 09:42:47

0

您可以直接在div类添加一个条件像

你需要这个div放置一个循环

<div class="<?php echo ($count<=10) ? 'articleTile column_3' : 'articleTile column_5' ?>"> 
+1

你错过了点:'$ count'将始终为1,因为它只在循环中增加* * div已经打印完毕。 – JJJ 2012-04-26 09:18:13

+0

@Juhana,现货!这正是我的问题。我需要在循环运行时更改类。 – 2012-04-26 09:29:47

+0

我的意思是它应该进入一个循环,但没有提及它,因为总是$ count和增量可能发生在循环内 – Ramkumar 2012-04-26 10:25:09

-1
<div class=<?php echo $class; ?></div> 

你可以,你想改变类的元素试试这个。

$class = "oldclass"; 
if(a==10){ 
$class= "newclass"; 
} 
+1

再一次,如果你仔细阅读问题,问题是OP已经打印完课程后才知道总计数*。 – JJJ 2012-04-26 09:21:04

+0

是的,我知道。我所说的是,他可以用这种技术来改变div的课程。 – ron 2012-04-26 09:36:38

0

这是我使用的:

<?php if (have_posts()) : ?> 

<?php 
$count = 1; 
$featuredPosts = 9; 
query_posts('showposts=19'); 
?> 

<div class="articleTile column_3"> 

<?php while (have_posts()) : the_post(); ?> 

    <?php if($count == $featuredPosts + 1) : ?> 

    <?php echo $count ?> 
     </div> 
     <div class="articleList column_2"> 

    <?php endif; ?> 

<div class="column"> 
<?php echo $count ?> 
    <?php get_template_part('content', 'featured'); ?> 

    <!-- #post-<?php the_ID(); ?> --> 

</div> 

<?php 
$count = $count +1; 
endwhile; 
?> 

</div>