勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

WordPressダッシュボードに投稿・固定ページ・カテゴリ・タグ一覧ページにIDを表示させてソート可能にする方法

  WordPress CMS

WordPressダッシュボードの投稿(記事)・固定ページ・カテゴリー・タグ一覧ページにIDを表示させたい。また、IDの昇順・降順でソート可能としたい。以前にカテゴリーとタグは対応したことがあったが投稿(記事)・固定ページに関しては未対応だったため、いずれもまとめて実装方法をメモ。

 

対応方法

投稿(記事)

//一覧ページにカラムを追加
function add_posts_id_columns( $columns ){
    $columns['id'] = 'ID';
    return $columns;
}
add_filter('manage_posts_columns', 'add_posts_id_columns');

//IDを表示
function add_posts_id_display( $column_name, $post_id ){
    if( $column_name == 'id' ){
        echo $post_id;
    }
}
add_action('manage_posts_custom_column', 'add_posts_id_display', 10, 3);

//IDでのソート機能を追加
function add_posts_id_sort( $columns ){
    $columns['id'] = 'ID';
    return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'add_posts_id_sort');

固定ページ

//一覧ページにカラムを追加
function add_page_id_columns( $columns ){
    $columns['id'] = 'ID';
    return $columns;
}
add_filter('manage_edit-page_columns', 'add_page_id_columns');

//IDを表示
function add_page_id_display( $column_name, $post_id ){
    if( $column_name == 'id' ){
        echo $post_id;
    }
}
add_action('manage_pages_custom_column', 'add_page_id_display', 10, 3);

//IDでのソート機能を追加
function add_page_id_sort( $columns ){
    $columns['id'] = 'ID';
    return $columns;
}
add_filter('manage_edit-page_sortable_columns', 'add_page_id_sort');

カテゴリー

//一覧ページにカラムを追加
function add_category_id_columns( $columns ){
    $columns['id'] = 'ID';
    return $columns;
}
add_filter('manage_edit-category_columns', 'add_category_id_columns');

//IDを表示
function add_category_id_display( $value, $column_name, $id ){
    if( $column_name == 'id' ){
        echo $id;
    }
}
add_action('manage_category_custom_column', 'add_category_id_display', 10, 3);

//IDでのソート機能を追加
function add_category_id_sort( $columns ){
    $columns['id'] = 'ID';
    return $columns;
}
add_filter( 'manage_edit-category_sortable_columns', 'add_category_id_sort');

タグ

//一覧ページにカラムを追加
function add_tag_id_columns( $columns ){
    $columns['id'] = 'ID';
    return $columns;
}
add_filter('manage_edit-post_tag_columns', 'add_tag_id_columns');

//IDを表示
function add_tag_id_display( $value, $column_name, $id ){
    if( $column_name == 'id' ){
        echo $id;
    }
}
add_action('manage_post_tag_custom_column', 'add_tag_id_display', 10, 3);

//IDでのソート機能を追加
function add_tag_id_sort( $columns ){
    $columns['id'] = 'ID';
    return $columns;
}
add_filter('manage_edit-post_tag_sortable_columns', 'add_tag_id_sort');

注意点等

必要に応じて上記の各ソースコードをfunctions.phpに記述しアップロードする。

尚、今回はデフォルトの投稿(記事)・固定ページ・カテゴリー・タグを使用する前提だが、カスタム投稿タイプやカスタムタクソノミーに対して実装したいような場合は以下リファレンスを参考に適宜変更する必要があり。

 

リファレンス

manage_posts_columns

https://developer.wordpress.org/reference/hooks/manage_posts_columns/

manage_posts_custom_column

https://developer.wordpress.org/reference/hooks/manage_posts_custom_column/

manage_pages_columns

https://developer.wordpress.org/reference/hooks/manage_pages_columns/

manage_pages_custom_column

https://developer.wordpress.org/reference/hooks/manage_pages_custom_column/

manage_{$this->screen->taxonomy}_custom_column

https://developer.wordpress.org/reference/hooks/manage_this-screen-taxonomy_custom_column/

manage_{$this->screen->id}_sortable_columns

https://developer.wordpress.org/reference/hooks/manage_this-screen-id_sortable_columns/

 - WordPress CMS

  関連記事

WordPressにてAdvanced Custom Fieldsを用いて連載(シリーズ)記事機能を実装する方法
WordPressにてAdvanced Custom Fieldsを用いて連載(シリーズ)記事機能を実装する方法

先日「Series」プラグインで連載(シリーズ)記事機能の実装方法をメモしたが、 ...

WordPressのContact Form 7から送信した内容をダッシュボードから確認及びCSVファイル化する方法
WordPressのContact Form 7から送信した内容をダッシュボードから確認及びCSVファイル化する方法

WordPressのContact Form 7プラグインで実装されたお問い合わ ...

wp_mail関数でエンベロープFrom(Return-Path)が指定できない場合の対応方法
wp_mail関数でエンベロープFrom(Return-Path)が指定できない場合の対応方法

WordPress内に設置されたお問い合わせのフォームようなシステムでエンベロー ...

WordPress内でPHPの独自プログラムページを実装する方法
WordPress内でPHPの独自プログラムページを実装する方法

WordPress内にてPHPで作ったシステムを実装したい。ヘッダー / フッタ ...

WP Social Bookmarking LightでSNSボタンが表示されない際の対応方法
WP Social Bookmarking LightでSNSボタンが表示されない際の対応方法

WordPressでWordPress WP Social Bookmarkin ...