2010-08-16 37 views
1

可以說我有一個博客的10個職位。 我想在我的首頁上顯示20篇文章。WordPress的循環重複本身

我該如何讓WordPress的循環重複自己,直到它達到20? (have_posts()):while(have_posts()):the_post();如果(have_posts()): end; endif;

順便說一句......我不想兩個圈......簡單的答案是有2個循環,每10個職位,使其等於20

THX

+0

如果你的博客只有10個職位,其中將其他10從何而來?你會重複帖子使其成爲20嗎? – gabe3886 2010-08-16 13:25:33

+0

是的,在我的首頁上,顯示前10個帖子,然後複製它們 – webmasters 2010-08-16 13:30:18

+0

正是。如果你的帖子少於20個,你是否在尋找有條件的邏輯,詢問是否少於20個帖子,轉載帖子直到顯示20個帖子? (那是什麼邏輯?) – markratledge 2010-08-16 13:31:19

回答

1

在主題functions.php文件拖放這樣的:

function my_awesome_post_booster(){ 
    if(!is_home()) 
    return; 
    global $wp_query; 
    if($wp_query->post_count < 20){ 
    $how_many = 20 - $wp_query->post_count; 
    $newposts = get_posts('numberposts='.$how_many); 
    $wp_query->posts = array_merge($wp_query->posts, $newposts); 
    $wp_query->post_count += count($newposts); 
    my_awesome_post_booster(); 
    } 
} 

add_action('template_redirect', 'my_awesome_post_booster'); 
+0

這是一個很酷的約翰。 它顯示前10個,然後顯示前5個,然後顯示最後5個不顯示任何鏈接...爲什麼? 順便說一句,你能解釋一下這個非常酷的代碼;)?一律lil – webmasters 2010-08-16 14:10:15

+0

我修正了'只顯示15'的問題。它所做的是: 首先,它看起來會默認顯示多少帖子。如果它少於20個,它會抓住差異(在這種情況下,它應該抓取10個帖子)並將它們追加到當前查詢中。然後它通過自身遞歸來查看它是否仍然低於20個帖子。如果是這樣,它會繼續運行,直到遇到至少20個帖子。 – 2010-08-16 14:16:03

+0

約翰,謝謝!真的謝謝你! – webmasters 2010-08-16 14:20:14

0

有一個設置在您可以更改主頁上的帖子的最大數量的後端 - 期待下設置 - >閱讀

+0

Ty爲你的答案,tho請仔細閱讀這個問題:) – webmasters 2010-08-16 13:31:04

0

WordPress的法典此鏈接將幫助你: The Loop - Multiple loops in Action

,如果你可以查詢職位與WP_Query, d沒有至少10個,那麼你可以再次循環結果。

<?php 
$my_query = new WP_Query('category_name=whatever'); 
$count = 0; 
while ($my_query->have_posts()) { 
    $my_query->the_post(); 
    $count++; 
} 
if (count < 10) { 
    //loop again or something 
+0

這看起來很有趣.. ty fernando ...思考如何使它再次循環 – webmasters 2010-08-16 13:50:22

+0

這個想法是,爲了seo的目的...沒有意義寫20篇文章在一旦..但要在一個月內寫出它們即使 – webmasters 2010-08-16 13:51:13

1

使用佔位符Lorem Ipsum文本http://www.lipsum.com來製作足夠的帖子並使用相同的拇指。比編寫新循環更有意義(儘管這很容易),並將其放置在/替換主題中。

如果你關心搜索引擎優化,那些擔心完全錯位。因爲您不希望使用多個帖子和/或Lorem Ipsum文本索引的網站阻止您的開發網站。一旦該網站是活在一個域名,然後做一個網站地圖,讓機器人在

+0

儘管我喜歡編碼只是爲了好玩,但這對我來說仍然更有意義。 – 2010-08-16 13:44:04

0

怎麼是這樣的:。

$count = 0; 
while ($count < 20) { 
    if (!have_posts()) { 
     rewind_posts(); 
    } 
    the_post(); 
    $count++; 
} 

當然,這假定查詢並至少有一個後