【WordPress】管理画面のカスタム投稿一覧を日付順にソートする方法

ブログ・サイト
ブログ・サイト
この記事は約5分で読めます。

とっちゃん@nyanco! です。

今回はWordPressの管理画面のカスタム投稿一覧をはじめから日付順にソートする方法の覚書です。

肉玉にゃんこ

複数のカスタム投稿バージョンもありますにゃ~

「functions.php」に記述していきます。「functions.php」は記述を誤るとサイトが真っ白になったり「サイトに重大なエラーが発生しました」と表示されたり、最悪は管理画面にすら入れなくなるケースもあるので、必ず元の「functions.php」はバックアップしつつ、FTPソフトからアップロードするようにしてください。作業はあくまで自己責任でお願いいたします。

スポンサーリンク

「カスタム投稿」はなぜか「タイトル」順にソートされる

いきなりですが、筆者にはこんな悩みがありました。

肉玉にゃんこ

WordPress管理画面のカスタム投稿一覧が良く分からない並び順で困ってますにゃ~
毎回手動で「日付」ソートにするのが面倒ですにゃ~

デフォルトの「投稿」の並び順は投稿日(公開日)順で並ぶので最近書いた記事を見つけやすいのですが、「カスタム投稿」はなぜか並び順が記事の「タイトル」順で並ぶ仕様のようなんです。

▼こんな感じですね。

肉玉にゃんこ

これは「タイトル」並びだったんですにゃ~
なるほど、だから冒頭に記号がついた記事ばかりが頭に並ぶわけですにゃ~

肉玉にゃんこ

…でも「タイトル」順で記事を探すことはあまりないので、初めから「日付」順にソートして欲しいですにゃ~

てな感じで悩んでいたのですが、困った時のGoogle先生に聞くと一発で解消したので備忘録を兼ねて記事にしてアーカイブしておきます。

参考記事

今回参考にさせていただいた記事は下記サイト様となります。

WordPress 管理画面内のカスタム投稿タイプの並び順を日付の降順ソートに変更する
プラグインや独自にカスタム投稿タイプを追加してWordPressサイトを運営していて管理画面内のカスタム投稿タイプの投稿一覧の並び順がタイトル順になっていて困ったことはありませんか?ソート条件を変更したいカスタム投稿タイプごとに以下のサンプ
肉玉にゃんこ

ありがとうございますにゃ~
複数のカスタム投稿タイプについての記事は他に見当たらなかったので助かりましたにゃ~

管理画面のカスタム投稿一覧を日付順でソートするコード

早速ですがコードのご紹介です。

日付順に並び替えたい「カスタム投稿」が1つのバージョン複数あるバージョンの2種類を用意しました。

肉玉にゃんこ

「functions.php」に追記していきますにゃ~
くれぐれも自己責任でお願いいたしますにゃ~

「カスタム投稿」が1つの場合

/* 管理画面のカスタム投稿一覧を日付順でソートする【カスタム投稿1つ】 */
function set_post_types_admin_order( $wp_query ) {
  if (is_admin()) {
    $post_type = $wp_query->query['post_type'];
    if ( $post_type == '投稿タイプスラッグ' ) {
      $wp_query->set('orderby', 'date'); //ソート基準定義
      $wp_query->set('order', 'DESC'); //ソート順定義(DESC:降順/ASC:昇順)
    }
  }
}
add_filter('pre_get_posts', 'set_post_types_admin_order');

「カスタム投稿」が複数の場合

/* 管理画面のカスタム投稿一覧を日付順でソートする【カスタム投稿が複数ver】 */
function set_post_types_admin_order( $wp_query ) {
  if (is_admin()) {
    $post_type = $wp_query->query['post_type'];
    switch ($post_type) {
        case '投稿タイプスラッグ':
        case '投稿タイプスラッグ':
        $wp_query->set('orderby', 'date'); //ソート基準定義
        $wp_query->set('order', 'DESC'); //ソート順定義(DESC:降順/ASC:昇順)
        break;
    }
  }
}
add_filter('pre_get_posts', 'set_post_types_admin_order');
肉玉にゃんこ

カスタム投稿の数の分だけ「case ‘投稿タイプスラッグ’:」の行を増やせば幾らでも対応できますにゃ~

補足説明

「投稿タイプスラッグ」の部分は、日付順でソートさせたいカスタム投稿のスラッグを入力します。

「投稿タイプスラッグ」は、プラグイン「CPT UI」の場合、①メニュー「CPT UI」→②「投稿タイプの追加と編集」→③「投稿タイプを編集」タブ→④「選択」から任意の投稿タイプを選択すると⑤確認できます。

ちなみに「ソート基準定義」は、date(日付)以外でも下記項目基準でソート可能です。

  • ID
  • date(日付)
  • modified(最終更新日時)
  • rand(ランダム)
  • comment_count(コメント数)
  • meta_value(カスタムフィールドの値)
肉玉にゃんこ

ランダム順とか誰トクな感じがしますがにゃ~

おわりに

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント