2012-07-15 64 views
0

我正在尋找一種方法來顯示我的Wordpress網站的主頁上的最後5個帖子,所以我假設我需要利用短代碼來做到這一點,但我找不到任何預先存在的代碼添加到functions.php將顯示標題,日期和帖子摘錄。在標題,日期和摘錄中顯示x最近發佈的WordPress的帖子

有人可能會幫助我嗎?

+0

這是一個自定義主題嗎?如果是這樣,那麼你可以控制The Loop只運行五次......否則,你會被他們設計的方式困住...... – Jon 2012-07-15 00:56:37

+0

不,這是我重新設計的標準二十幾歲一個客戶。 – 2012-07-15 01:14:14

回答

2

有很多種方法可以做到這一點,但基本想法與您在主題的INDEX.PHP頁面中看到的代碼類似。你做一個查詢,循環顯示帖子,然後在最後重置查詢,所以你所做的不會干擾你的主頁面。

function Last5posts() 
{ 
    $args = array("showposts" => 5);     
    query_posts($args); 

    $content = ""; 

    if(have_posts()) : 

     while(have_posts()) : 

      the_post(); 
      $link = get_permalink(); 
      $title = get_the_title(); 
      $date = get_the_date();        

      $content .= "<div style='padding: 5px; border: 1px solid red'>"; 
      $content .= "<h3><a href='$link' target='_top'>$title/$date</a></h3>\n"; 
      $content .= "<p class='excerpt'>" . get_the_excerpt() . "</p>"; 
      $content .= "</div>"; 

     endwhile; 

     wp_reset_query(); 

    endif; 

    // Leave one line commented out depending on usage 
    echo $content; // For use as widget 
    //return $content; // for use as shortcode 
} 

要註冊這是一個小部件,啓用「回聲」的結尾,那麼這行添加到文件底部:

register_sidebar_widget(__('Last 5 Posts'), 'Last5posts'); 

您可能需要添加一些額外的代碼來將輸出放入一個Wi​​dget包裝器DIV中,就像其他側邊欄小部件一樣。 (或者,如果您在除傳統邊欄以外的地方使用它,則不是。)

您也可以使用下面一行將其註冊爲簡碼處理程序。在最後註釋掉「回聲」,並取消註釋「迴歸」。

add_shortcode('Last5Posts', 'Last5posts');   

你要確保你不使用簡碼的博客文章,或者你可能最終遞歸調用此。可能是一件壞事。

您可能還需要在函數名稱中添加一個特定於主題的前綴以避免命名空間衝突。

+0

感謝邁克,這工作幾乎完美(這正是我想要的)。出於某種原因,帖子顯示在頁面的頂部,而不是它應該顯示的位置,即在頁面的底部。有任何想法嗎?我還將短代碼放入div中,但div不再顯示。 – 2012-07-15 01:29:28

+0

帖子將簡單地顯示在任何帶有小工具的邊欄所在的位置。如果你想在其他地方使用這個小部件,你必須把它放到不同的側邊欄中,或者編輯你的CSS來改變事物的位置。 – 2012-07-15 01:35:01

+0

我使用短代碼而不是widget,看起來我必須「返回」,而不是使用「echo」,以便在頁面上顯示我想要的短代碼而不是頁面的頂部,但是當我改變回聲返回,短代碼停止工作。我和PHP不在一起,你有沒有機會知道如何解決這個最後的問題? – 2012-07-15 01:48:21

0
<?php 

    $args = array('numberposts' => 5); 

    $recent_posts = wp_get_recent_posts($args); 

    foreach($recent_posts as $recent){ 
     echo $recent["post_title"].' '.$recent['post_date'].' '.$recent['post_excerpt'].'<br />'; 
    } 
?> 

Wordpress Codex並不是那麼糟糕。

+0

謝謝你,但是,因爲我不熟悉PHP,我不完全確定如何將其添加到我的functions.php。我添加了明顯的功能,然後上面的代碼減去php標籤,還add_shortcode,但是我得到意外的$ end爲add_shortcode行。 – 2012-07-15 01:10:53

+0

所以代碼看起來像;函數show_the_posts($ atts){CODE YOU POSTED ABOVE}然後下面是add_sortcode等 – 2012-07-15 01:17:17

+0

我不能說你的錯誤行看起來像什麼。請編輯代碼,或者更好地鏈接到文件或小提琴,如果它太多。 – 32bitfloat 2012-07-15 01:19:45

相關問題