投稿を先頭固定を含めて3件取得する
-
参考: WordPressのWP_Query関数を使っていても「この投稿を先頭に固定表示」を使うと記事件数がはみ出してしまう問題を解決するソースコード | コワーキングスペース7F
おそらく以下のようなコードで取得できると思います。
$posts_count = 3; $posts_per_page = $posts_count; $sticky = get_option( 'sticky_posts' ); if ( ! empty( $sticky ) ) { $posts_per_page = $posts_count - count( $sticky ); } $param = array( 'posts_per_page' => $posts_per_page, 'orderby' => 'date', 'order' => 'DESC' ); //$posts_countが0以下になった場合、posts_per_pageが求めてる動作をしないのでその対処。 if( $posts_per_page < 1 ) { $param = array( 'posts_per_page' => 3, 'post__in' => get_option('sticky_posts'), 'ignore_sticky_posts' => 1, ); } $my_query = new WP_Query( $param ); if( $my_query->have_posts() ): while( $my_query->have_posts() ): $my_query->the_post(); //ループの中身。 endwhile; wp_reset_postdata(); endif;
また、query_postsを使うとデフォルトのループの内容が変わってしまうので、好ましくありません。
テンプレートタグ/query posts – WordPress Codex 日本語版等も参照してみてください。
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- トピック「投稿を先頭固定を含めて3件取得する」には新たに返信することはできません。