如何在 WordPress 上避免重複帖子顯示與多個循環

WPressize Me

05/30/2024

如何在 WordPress 上避免重複帖子顯示與多個循環

最後更新日期:2024年4月30日 | 編輯部 | 評審:Syed Balkhi

您是否想解決在 WordPress 上使用多個循環時出現的重複帖子顯示問題?

如果您使用多個 WordPress 查詢來顯示不同的帖子集,那麼可能會遇到重複內容。這是因為某些帖子可能符合多個循環的條件,並因此出現兩次。

在這篇文章中,我們將向您展示如何輕鬆地避免在多個循環中顯示重複的帖子。

重複帖子如何在多個 WordPress 循環中出現

當您在建立自訂的 WordPress 主題或客製頁面範本時,有時候可能需要使用多個 WordPress 循環。例如,您可能希望在網站的熱門帖子旁展示最新的帖子。藉由展示每個類別的所有帖子,您也可以幫助讀者找到有趣的內容。

在所有這些示例中,單個帖子可能符合多個循環的條件。當這種情況發生時,WordPress 會顯示重複的內容。這些重複的內容會讓您的網站看起來雜亂無章,並佔據屏幕空間卻未能增加價值。由於您是動態地為每個循環生成帖子,無法手動預測是否會在多個循環中出現重複的帖子。

在多個 WordPress 循環中避免重複帖子

在本指南中,我們將展示一些導致重複帖子錯誤的範例 WordPress 代碼,然後分享一個解決問題的代碼片段。

當創建 WordPress 子主題或自訂範本時,您的代碼可能完全不同。然而,您可以使用我們的代碼片段作為起點,然後修改它以適應您的網站。

首先,我們來創造一個重複的帖子問題。在以下的範例代碼中,我們展示了 ‘travel’ 類別下的所有帖子和 ‘news’ 類別下的所有帖子,並沒有避免重複的帖子:

/******  The First Query ******/
$first_query = new WP_Query( array (
'category_name' => 'news',
'posts_per_page' => 3
));
// The Loop
if ( $first_query->have_posts() ) {
echo '<ul>';
while ( $first_query->have_posts() ) {
$first_query->the_post();
//display posts
echo '<li>';
echo the_post_thumbnail( array(50, 50) );
echo get_the_title();
echo '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
/****** The Second Query ******/
$second_query = new WP_Query( array (
'category_name' => 'travel',
'posts_per_page' => 3
));
// The Loop
if ( $second_query->have_posts() ) {
echo '<ul>';
while ( $second_query->have_posts() ) {
$second_query->the_post();
echo '<li>';
echo the_post_thumbnail( array(50, 50) );
echo get_the_title();
echo '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?

如您所見,這段代碼在任何一個查詢中都沒有檢查是否有重複的帖子。如果一篇帖子同時屬於 ‘news’ 和 ‘travel’ 類別,那麼它將顯示兩次。

現在我們來解決這個問題。

為了避免在您的 WordPress 部落格上出現重複的帖子,您需要臨時存儲在第一個循環中顯示的所有帖子的數據。一旦有了這些信息,您就可以修改第二個查詢,讓重複的帖子不會出現在第二個循環中:

/******  The First Query ******/
$first_query = new WP_Query( array (
'category_name' => 'news',
'posts_per_page' => 3
));
// The Loop
if ( $first_query->have_posts() ) {
echo '<ul>';
while ( $first_query->have_posts() ) {
$first_query->the_post();
// Store Post IDs in an Array to reuse later
$exclude[] = $post->ID;
//display posts
echo '<li>';
echo the_post_thumbnail( array(50, 50) );
echo get_the_title();
echo '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
/****** The Second Query ******/
$second_query = new WP_Query( array (
'category_name' => 'travel',
'post__not_in' => $exclude, // Tell WordPress to Exclude these posts
'posts_per_page' => 3
));
// The Loop
if ( $second_query->have_posts() ) {
echo '<ul>';
while ( $second_query->have_posts() ) {
$second_query->the_post();
echo '<li>';
echo the_post_thumbnail( array(50, 50) );
echo get_the_title();
echo '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?

在上面的代碼中,我們將帖子的 ID 存儲在一個名為 $exclude 的數組中。之後,我們在第二個查詢中添加了 post__not_in 參數,這將排除在第一個循環中顯示的帖子。

如果您不熟悉如何向您的網站添加代碼片段,那麼使用 WPCode 可能是更簡單的方法。這是目前最好的 WordPress 代碼片段插件,可以幫助您在不冒險破壞網站的情況下添加自訂代碼。

首先,您需要安裝並激活 WPCode 插件。如果您需要幫助,請參閱我們的 WordPress 插件安裝指南。激活後,您可以從 WordPress 儀表板中進入 Code Snippets + Add Snippet,然後點擊 ‘Add Your Custom Code (New Snippet)’ 選項。

之後,您可以將自訂代碼粘貼到 Code Preview 區域,並在頂部輸入一個標題。您還需要選擇 ‘Code Type’ 為 PHP Snippet,點擊下拉菜單選擇。輸入代碼後,向下滾動至 Insertion 部分。這裡,您可以使用默認設置 ‘Auto Insert’,讓插件自動將代碼添加到您的網站上。完成後,僅需保存片段並激活它。更多詳細信息,請參閱我們的 WordPress 自訂代碼添加指南。現在,訪問您的 WordPress 網站,您將會發現重複的帖子已經消失了。

我們希望這篇文章幫助您學習如何在 WordPress 上避免重複帖子顯示與多個循環。您可能還想看看我們的最佳網頁設計軟件指南,或我們專家精選的最佳拖放式 WordPress 頁面構建器。如果您喜歡這篇文章,請訂閱我們的 YouTube 頻道以獲得更多 WordPress 視頻教程。您也可以在 Twitter 和 Facebook 上找到我們。



Related Posts

  • 2024-07-20
  • WordPress 主题

您是否想在 WordPress 中為不同頁面使用多個佈景主題?可以自訂網頁的外觀和布局,為文章、頁面和部分區域建立模板。但是如果您想為網站的某些部分或頁面使用完全不同的佈景主題呢?本文將指導您如何在 WordPress 中為頁面使用多個佈景主題。

閱讀更多
  • 2024-07-19
  • WordPress 主题

您是否想在 WordPress 網站上添加回頂效果?這種效果在頁面較長時非常有用,可以讓用戶輕鬆返回頁面頂部,提升網站的用戶體驗。本文將教您如何使用 jQuery 和插件在 WordPress 中添加平滑回頂效果。

閱讀更多
  • 2024-07-13
  • WordPress 主题

您是否想在 WordPress 中創建一個自定義頁面?自定義頁面允許您使用與網站其餘部分不同的佈局。許多 WordPress 網站使用自定義頁面佈局來建立銷售頁面、登陸頁面、網路研討會頁面等。在這篇文章中,我們將向您展示如何輕鬆地在 WordPress 中創建自定義頁面。

閱讀更多

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>