0

特定のカテゴリの問題から最後の 5 件の投稿を表示するためのヘルプを得るために、以前に SO で質問をしました。これは解決されましたが、新しい問題が発生し、ショートコードを使用した場合にのみ明らかになりました。

問題

以下のコードを使用して、ショートコードをページの 1 つに追加すると、ページの下部に「返信を残す」ボックスが追加されます。私はコメントをオフにしており、ショートコードが使用されていない場合、サイトで「返信を残す」は明らかではありません - ショートコードを追加した場合にのみ発生します。私の functions.php に追加されました。

コード

function Last5posts()   {
    $args = array( 'showposts' => 5, 'cat' => '3');                  
    $last_5_posts_query = new WP_Query( $args );
    while($last_5_posts_query->have_posts()) : 
    $last_5_posts_query->the_post();
    $link = get_permalink();
    $title = get_the_title();
    $date = get_the_date();                              

    $content .= '<div class="latest-posts">';
    $content .= '<h3><a href='.$link.' target="_top">'.$title.' / '.$date. '</a></h3>';
    $content .= '<p class="excerpt">' .get_the_excerpt(). '</p>';
    $content .= '</div>';
endwhile;

return $content;
}

add_shortcode('Last5Posts', 'Last5posts' );
4

2 に答える 2

2

この問題は、「showposts」が廃止され、「post_per_page」に置き換えられたことが原因であり、すべて問題ありません。

于 2013-03-30T01:38:47.633 に答える
0

コードでカスタム WP_Query を使用します。クエリで the_post() を呼び出すと、グローバル $post 変数が変更されます。したがって、ショートコード メソッドの後に実行されるコードは、新しい $post 値で機能します。

endwhile の後に wp_reset_postdata を追加すれば問題ないはずです。

于 2013-03-29T19:19:51.927 に答える