2012-04-26 70 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>