概要説明
ショートカットで使用したりカスタマイズで使用したりと記事の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');
}



