2012-08-25 27 views
0

首先讓我說,我一直在這個問題上工作了大約2個星期,我看遍了各地的答案。我去過各種論壇,博客,WordPress Codex以及任何我能找到的地方。我仍然無法讓這個工作正常。作爲最後的手段,我來這裏看看是否有人可以幫助我。WordPress的循環錯誤

我的問題是這樣的。我正在構建一個免費的WordPress主題,http://wp-awesome.themeawesome.com。我將把它提交給WordPress主題庫,並希望將其託管,以便人們可以下載它。其中一個要求是主題不能產生任何錯誤。一切都很完美,除了一個之外沒有錯誤。當我轉到第二頁時,我收到以下錯誤消息:

* 注意:未定義的變量:/ -/-/-/-/-/-/wp-awesome中的do_not_duplicate/68行上的index.php *

正如您在首頁可以看到的那樣,有一個精選的帖子滑塊。此滑塊將顯示標記爲「精選」的帖子。我使用下面的代碼爲這個特定的查詢:

<?php 
      $mytag = mytheme_option('featured_tag'); 
      $thecount = mytheme_option('featured_count'); 
      $my_query = new WP_Query("tag=$mytag&showposts=$thecount"); 
      while ($my_query->have_posts()) : $my_query->the_post(); 
      $do_not_duplicate[] = $post->ID; 
     ?> 

// post stuff here 

<?php endwhile; ?> 

現在很明顯,在主頁上我不希望被顯示在滑塊在它下面的常規循環顯示頭版文章。所以我發現下面的代碼,似乎工作偉大:

<?php 
if (is_home()) { 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    query_posts(array(
     'post__not_in' => $do_not_duplicate, 
     'paged' => $paged 
    )); } 
if (have_posts()) : while (have_posts()) : the_post(); ?> 

// post stuff 

<?php endwhile; ?> 

唯一的問題是,當你在底部的另一頁面上點擊錯誤顯示出來:

* 注意:未定義的變量:do_not_duplicate在/--/--/--/--/--/--/wp-awesome/index.php on line 68 *

我知道錯誤出現,因爲當你去第二個或第三個頁面,沒有定義do_not_duplicate參數。任何想法如何解決這一問題?

任何幫助非常感謝,我提前感謝你。

回答

0

簡單&快速修復(不是最好的)就是在主題的header.php文件中聲明$ do_not_duplicate變量,該文件位於:wp-content/themes/YOUR_THEME/header.php。如果它是一個數組,你可能需要聲明它的元素。就像這樣:

<?php 
    // declaration of $do_not_duplicate array 
    for ($i = 0; $i < 100; $i++) { 
    $do_not_duplicate[$i] = 0; 
    }; 
?> 
+0

感謝@marcinsdance,讚賞,唯一的問題是我不知道你的意思......洛爾 - 通常這是不是因爲我是創建爲客戶大多數主題,所以一般的錯誤,像這樣的問題真的沒關係。但是,試圖遵循WP標準確實很難。任何機會,你可以提供一個例子,我將如何去實施你的修復,所以我可以看到它是如何工作的。再次非常感謝你的時間。 – tsquez

+0

沒問題,我編輯了我的答案,使其更加清晰。 – marcinsdance

+0

再一次,非常感謝。我要補充一點,看看它是如何發展的。我也認爲這也是我所做的。我將滑塊代碼從索引文件中取出並放入content-featured.php文件中,並使用get_template_part對其進行調用。由於某種原因,它不承認該場景中的do_not_duplicate。但是,如果我直接將滑塊添加到index.php文件。由於某種原因,它工作正常。哦,好吧,大聲笑,但謝謝你的時間和協助。 – tsquez