2014-02-13 53 views
0

我試過我可以在這個,我仍然卡住,所以我正在尋求一些幫助。我確信有些東西我可以忽略或者不知道,所以我會很感激另一雙眼睛去看看!開關在while循環內不工作(WordPress的PHP)

我試圖在Wordpress中使用一個開關,同時爲特定的帖子在帖子縮略圖上設置尺寸。開關使用自動遞增值($ count)。在循環內部,$ count將爲div ID返回正確的數字,但它不適用於該開關。所有的縮略圖去定義的循環開始前的大小(見$ thumbsize)

下面的代碼:

// Setup loop to pull only posts tagged slider 
$max = 6; 
$args = array('tag' => 'slider','posts_per_page' => $max); 
$featuredPosts = new WP_Query(); 
$featuredPosts->query($args); 

// Defaults for post thumbnail display 
$thumbargs = array('class' => 'featured-blocks-img'); 
$thumbsize = array(640,360); 

$count = 0; 

    // Begin loop 
    if ($featuredPosts->have_posts()) : while ($featuredPosts->have_posts()) : $featuredPosts->the_post(); 

    $count++; 

    // Get post category and format for div class name 
    $category = get_the_category(); 
    $catname = $category[0]->cat_name; 
    $catdash = 'cat-'; 
    $catdash .= str_replace(' ', '-', $category[0]->cat_name); 
    $catdash = strtolower($catdash); 

    // Change post thumbnail size conditionally 
    switch ($count) { 
     case 2: 
     case 5: 
     case 6: 
      $thumbsize == array(320,260); 
      break; 
     default: 
      $thumbsize == array(640,360); 
    } // End switch 
    ?> 
    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> 
     <div id="home-featured-post-<?php echo $count;?>" class="featured-blocks-post <?php echo $catdash; ?>"> 
      <h2 class="home-featured-title"><?php the_title(); ?></h1> 
      <?php the_post_thumbnail($thumbsize, $thumbargs); ?> 
     </div>  
    </a> 

    <?php 
    endwhile; 
    endif; // End loop 

這裏,它是要點形式,如果這是有幫助的人:https://gist.github.com/anonymous/8984741

我試圖添加可以提供一些上下文的註釋。

關於發生了什麼的任何想法?我可以提供最終的HTML源代碼,如果這也有幫助。

+0

您可以發佈您的錯誤日誌的內容? – DarthCaniac

+0

我檢查了WP_debug和服務器錯誤日誌,並沒有任何相關的消息到這個函數甚至這個頁面。 – evan3168

回答

1

看起來你實際上並沒有在下面的代碼中設置$ thumbsize

$thumbsize == array(320,260); 

==是比較$ thumbsize到數組,而不是創造與價值的數組。

你真的希望它只是看起來像這樣:

$thumbsize = array(320,260); 
+0

將其更改爲'$ thumbsize = array(320,260);'就像魅力一樣工作。謝謝! – evan3168

+0

如果你不介意,你能向我解釋爲什麼這種改變有效嗎?我認爲我理解了=,==和===之間的區別,但也許不是...... – evan3168

+0

當然。 =正在爲一個項目分配一個值。所以,如果你要說$ i = 3;然後echo $ i你的代碼會打印'3'。 ==比較每一邊的項目。 ==在if語句中最常用,如if($ i == 3){echo「yay!i equals 3!」; }其他{回聲「噓!我不等於3」; }在您的代碼中,您已經將$ thumbsize設置爲某個值,然後當您使用==時,它不會重新分配它,而是將它進行比較。所以,$ thumbsize的值永遠不會被改變。 – jswat