はじめに
WordPressのカスタム投稿には「ページの先頭に固定表示する」機能が備わっておりません。
そこで、 Seamless Sticky Custom Post Types
というプラグインを活用して、カスタム投稿の任意の記事をページの先頭に固定表示する機能を実装していこうと思います。
https://ja.wordpress.org/plugins/seamless-sticky-custom-post-types/
Seamless Sticky Custom Post Typesの役割
公式の説明を要約すると
-
カスタム投稿の記事に先頭固定表示ボタンを設置する
-
先頭固定表示ボタンにチェックを入れた記事IDは
get_option('sticky_posts')
から取得可能
-
なるべくシームレスにするためクエリは変更しない
つまり、このプラグインの役割は
設置したボタンにチェックが入っている記事IDをDBに格納する
です。
DBに格納した記事IDの配列は get_option('sticky_posts')
で取得できます。
Seamless Sticky Custom Post Typesを利用して記事を取得する
以下の条件における記事を1つのループにまとめて表示します。
カスタム投稿タイプ |
post_type_slug |
記事取得数(1ページあたり) |
10 |
表示順 |
先頭固定表示にチェックが入っている記事、それ以外の記事の順で、それぞれ公開日時が新しい順で取得 |
返り値 |
$display_results |
$display_results
は array
型で返ってくるのでご注意ください。
補足
先頭固定表示ボタンにチェックを入れた記事IDは wp_options
テーブルに格納されております。
さいごに
記事を表示するループを1つにまとめることで、特にページネーションが存在するページにおいて起こりうる問題を解消することができます。
数ある手法の中の1つとしてご参考にしてください。