📖

【WordPress】カスタム投稿の記事一覧にてデフォルトの記事の並び順を日付の降順に変更する(管理画面)

2022/03/05に公開

カスタム投稿の記事一覧でデフォルトの並び順を『日付』の『降順』に変更する方法です。
もちろん、この設定を追加後も基本の並び替え機能は使用できます。

コード

functions.php にコードを追加します。

functions.php
/**
 * カスタム投稿の記事知覧で並び順を日付降順に変更
 */
function change_post_types_admin_order($wp_query) {
  if (is_admin()) {
    $post_type_array = array('news', 'blog'); // カスタム投稿のスラッグ(post_type)
    $post_type = $wp_query->query['post_type'];
    $get_orderby = get_query_var('orderby');
    if ($post_type && $get_orderby) {
      if (in_array($post_type, $post_type_array) && $get_orderby === 'menu_order title') {
        $wp_query->set('orderby', 'date'); // data = 日付
        $wp_query->set('order', 'DESC'); // DESC = 降順
      }
    }
  }
}
add_filter('pre_get_posts', 'change_post_types_admin_order');

要件

目的に合わせて下記を変更してください。

複数のカスタム投稿に一括で対応しています。

カスタム投稿のスラッグ(post_type)を配列に格納しています。
上記コードでは newsblog を設定しています。
適用するカスタム投稿の変更は4行目を変更してください。

並び順の条件は『日付』の『降順』です。

並び順の条件をそれぞれ設定しています。
上記コードでは並び替えの対象を日付(date)、順番を降順(DESC)と設定しています。
並び順の条件を変更する場合は9~10行目を変更してください。
適用できる条件は下記を参考にしてください。
http://wpdocs.osdn.jp/関数リファレンス/WP_Query#.E9.A0.86.E5.BA.8F.E3.81.A5.E3.81.91.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF

Discussion