0

Wordpress Webサイトのホームページに最後の5つの投稿を表示する方法を探しているので、これを行うにはショートコードを使用する必要があると思いますが、functions.phpに追加する既存のコードが見つかりませんタイトル、日付、投稿の抜粋が表示されます。

誰かがこれを手伝ってくれるでしょうか?

4

2 に答える 2

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');

他のサイドバーウィジェットと同様に、出力をウィジェットラッパーDIVに配置するためのコードを追加することをお勧めします。(または、従来のサイドバー以外の場所で使用する場合は除きます。)

以下の行を使用して、これをショートコードハンドラーとして登録することもできます。最後に「エコー」をコメントアウトし、「リターン」のコメントを外します。

add_shortcode('Last5Posts', 'Last5posts' );         

ブログの投稿でショートコードを使用しないようにする必要があります。そうしないと、これを再帰的に呼び出すことになります。おそらく悪いことです。

名前空間の衝突を避けるために、関数名にテーマ固有のプレフィックスを追加することもできます。

于 2012-07-15T01:23:39.730 に答える
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コーデックスはそれほど悪くはありません。

于 2012-07-15T01:02:39.477 に答える