質問: get_posts( $args ); foreach ( $posts as $post ): // ループの開始 setup_postdata( $post ); // 記事データの取得 $html .= ''; $html .= ''.the_title("","",false).''; $html .= ''; endforeach; // ループの終了 wp_reset_postdata(); // 直前のクエリを復元する $html .= ''; return $html; } add_shortcode('toppage', 'source_toppage'); ``` ### 試したこと function.phpに上記ソースを入力。 ホームページに設定した固定ページに、ショートハンド「[toppage]」と入力。 ### 補足情報(FW/ツールのバージョンなど) http://pc-pier.com/blog/2015/05/19/shortcode-latestarticle/ 上記url先のソースだと何故かうまくいきました。 ### 現状のスクショ(2018/2/22更新) ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/3ab8be1b4edc72360d1dbba57432cf5d.png)
回答: とりあえず`$posts`はWordPressの予約変数であり、グローバル変数でもあるので使用するのは避けた方が良いです。 同じ投稿が表示されたり、2ページ目以降投稿が表示されなかったりするのは`$posts`が競合している場合が多いです。 参考:グローバル変数・定数:WordPress私的マニュアル