概要説明
ショートカットで使用したりカスタマイズで使用したりと記事のID(post_id)はよく利用します。管理画面の投稿一覧にID情報を表示させ、一覧の表示のデフォルトの条件を追加したIDの降順(大きい順)に変更。投稿一覧、固定ページ一覧、カスタム投稿一覧に対応。
投稿一覧にID項目を追加した時のイメージ
管理画面の投稿一覧にIDを追加してデフォルト表示を設定
functions.php
/*---------------------------------------------------- 管理画面 投稿一覧の先頭にIDを表示させデフォルトをIDの降順に設定 ----------------------------------------------------*/ if ( !function_exists( 'add_post_list_id_columns' ) ){ // 投稿一覧の先頭にIDを表示させる function add_post_list_id_columns( $columns ) { $remake_columns = array(); foreach ( $columns as $name => $display_name ) { if ( isset( $columns['title'] ) && $name == 'title' ) { $remake_columns['post_id'] = 'ID'; } $remake_columns[$name] = $display_name; } return $remake_columns; } add_filter( 'manage_post_posts_columns', 'add_post_list_id_columns', 5 ); // 投稿 add_filter( 'manage_page_posts_columns', 'add_post_list_id_columns', 5 ); // 固定ページ // news 部分はカスタム投稿のslug //add_filter( 'manage_news_posts_columns', 'add_post_list_id_columns', 5 ); // カスタム投稿にも設定する場合 // 管理画面 投稿一覧にIDを追加 function add_manage_posts_custom_column_id($column_name, $post_id) { if ( $column_name == 'post_id' ) { echo $post_id; } } add_action('manage_posts_custom_column', 'add_manage_posts_custom_column_id', 10, 2); add_action('manage_pages_custom_column', 'add_manage_posts_custom_column_id', 10, 2); // ID の見出しでソートを可能にする function add_sort_column_id ( $sortable_columns ) { $sortable_columns['post_id'] = 'ID'; return $sortable_columns; } add_filter( 'manage_edit-post_sortable_columns', 'add_sort_column_id' ); add_filter( 'manage_edit-page_sortable_columns', 'add_sort_column_id' ); //管理画面の一覧の表示順制御 IDの大きい順(降順)に変更する function set_admin_pre_get_posts( $wp_query ) { // 管理画面 if( is_admin() ) { global $pagenow; $post_type = isset($wp_query->query_vars['post_type']) ? $wp_query->query_vars['post_type'] : false; // 投稿ページ if ( 'edit.php' === $pagenow and !isset( $_GET['orderby'] ) ) { $wp_query->set( 'orderby', array( 'menu_order' => 'ASC', 'ID' => 'DESC' ) ); $_GET['orderby']='ID'; $_GET['order']='desc'; } else if ( $post_type !== false and !isset( $_GET['orderby'] ) ) { // 固定ページ if($post_type == 'page') { $wp_query->set( 'orderby', array( 'menu_order' => 'ASC', 'ID' => 'ASC' ) ); $_GET['orderby']='ID'; $_GET['order']='desc'; } // カスタム投稿 //if($post_type == 'news') { // $wp_query->set( 'orderby', array( 'meta_key' => 'ID', 'menu_order' => 'ASC', 'ID' => 'DESC' ) ); // $_GET['orderby']='ID'; // $_GET['order']='desc'; //} } } } add_filter('pre_get_posts', 'set_admin_pre_get_posts'); }