投稿データを指定した順番で表示する。
WordPressでは、投稿機能を活用することで簡単に掲載ページを投稿する事ができます。
そのため、投稿機能を活用して様々な情報を掲載するような場合、デフォルトの投稿した日付の順番ではなく、指定した順番で表示したい場合などがあると思います。(例えば、FAQの一覧のようなものなど)
今回は、投稿機能のソートについて掲載します。
1.orderbyでソート対象を指定して取り出し
WP_Queryやget_postsのパラメータでソート対象を指定する事でソートをする事ができます。
(弊社ブログ参考)WP_Queryやget_postsのパラメータまとめ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $args = array( 'order' => 'DESC', // 'ASC' 昇順 (1, 2, 3; a, b, c) // 'DESC' 降順 (3, 2, 1; c, b, a) 'orderby' => 'date', // デフォルト値'date' 複数オプションの指定が可能 // 例:'orderby' => 'product_name title' // その他のオプション ↓ //'none' 並び替えなし //'ID' 投稿IDでソート //'author' 著者でソート //'title' タイトルでソート //'name' Order by post name(post slug) //'modified' 更新日でソート //'parent' 親ページIDでソート //'rand' ランダム順 //'comment_count' コメント数でソート //'menu_order' ページの表示順でソート //'meta_value' アルファベット順でソート(数値ではうまくいかない。特定のmetaキーを指定する場合) //'meta_value_num' 数値でソート(特定のmetaキーを指定する場合) //'post__in' post__inで配列で指定された投稿IDの並び順を維持して表示 ); |
パラメータを例にしておりますが、もちろんメインクエリにpre_get_postsでアクションを追加しても実行できます。
(弊社ブログ参考)検索条件を変えるなら、pre_get_postsが便利
2.特定のmetaキーを使用してソート
指定した順番で表示するためには、カスタムフィールド(metaキー)を追加し、カスタムフィールドでソートするのが便利です。
2.1.サンプル
sortnumberというカスタムフィールド(metaキー)を追加し、若い番号順に表示するような場合
以下のパラメータを渡す事で、若い番号順に取り出す事ができます。
1 2 3 4 5 6 | $args = array( 'order' => 'ASC', 'orderby => 'meta_value_num', 'meta_key' => 'sortnumber', ); $myposts = get_posts($args); |
もちろん、pre_get_postsにアクションを追加しても可能です。
以下は、’faq’というカスタム投稿をsortnumberの若い番号順に取得しています。
1 2 3 4 5 6 7 8 | add_action('pre_get_posts', 'my_pre_get_posts'); function my_pre_get_posts($query){ if($query->is_post_type_archive( 'faq' ) ){ $query->set( 'order', 'ASC' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'meta_key', 'sortnumber'); } } |
2.2.注意事項
ソート用のカスタムフィールドを追加してソートする際には注意事項があります。
ソート用のカスタムフィールド(上記の例ですとsortnumber)を必ず設定していないと、当該データが取得できませんので、ソート用のカスタムフィールドに必ず値を設定する必要があります。
以上、皆さまのお役に立てれば幸いです。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル