この記事は2019年以前他サイトに執筆したものを引越し掲載しています。情報が古い可能性があります。
WPサイトトップページで「お知らせ」を表示する際「先頭に固定表示」を使いたいという場合。
今回の事例としては、もともと最新記事から4件を表示していましたが、ずっと固定で掲載したいものが1件あるというケース。
この場合「先頭に固定表示」を単に有効にするだけだと、書き方によって以下のような問題が発生してしまう可能性がある。
- 表示したい合計記事数が増えてしまう…(例:「先頭に固定」1+最新4で表示数が5)
- 同じ記事がダブって表示される…(「先頭に固定」した記事が最新3記事内だと同じ記事がダブって表示される)
目次
考え方と手順例
1.先頭固定記事のみを取得する
'post__in'=> get_option( 'sticky_posts' )
2.「先頭に固定表示」以外のnewsカテゴリの記事を取得する。これによりダブって同じものが表示されるケースを無くす。
'post__not_in' => get_option( 'sticky_posts' )
3.設定が全部で4記事表示なら’posts_per_page’=4だがこのままだと「先頭に固定表示」分だけ数が増えてしまうので引き算
引き算の方法
1.countを使って「先頭固定記事」の数($posts)を取ってくる
$fixed=count($posts)
2.表示したい合計数(例:4)から引く
$list_count = 4-$fixed
3.結果を固定以外のnewsカテゴリの記事の配列に入れる
'posts_per_page' => $list_count
コメント