スポンサーリンク

WordPress で 管理画面のカスタム投稿一覧のデフォルトの並び順をカスタムフィールドでソートしておく方法

Advanced Custom Fieldで作成した日付書式のカスタムフィールドをCustom Post Type UIで作成したカスタム投稿に追加した際、管理画面のカスタム投稿一覧にカスタムフィールドを表示するようにしました。

通常、管理画面の投稿一覧は投稿日の日付でソートされています。これを日付書式のカスタムフィールドでソート出来るようにソートリンクを追加しましたが、出来ればカスタム投稿一覧を表示した時点で最初からソートされているようにしたい…という事で調べてみた際、通常の”投稿”で可能なやり方はありましたが、それだとカスタム投稿では使用出来ないことが分かりました。

そこで、コミュニティに質問したところ有効な回答が得られましたので、こちらにもメモとして書いておきます。

 

// 管理画面での表示リスト順変更
add_action( 'pre_get_posts', 'custom_post_sort' );
function custom_post_sort( $query ) {
	if ( ! $query->is_main_query() ) 
		return;

	elseif ( is_admin()
	 && ( isset( $query->query_vars['post_type'] ) && $query->query_vars['post_type'] == 'カスタム投稿タイプ名' ) ) {
		$query->set( 'meta_key', 'カスタムフィールド名' );
    	$query->set( ‘orderby’, ‘カスタムフィールド名' );
    	$query->set( 'order', 'DESC' ); // 降順
	}

}
タイトルとURLをコピーしました