WordPressを使ってサイトを作ろ事が多いのだけど、投稿IDから記事を参照するようなショートコードを作ることも多い。

そうしたときにクライアントに投稿IDはURLに表示されていますよという事を言うのも手間なのでダッシュボードの投稿一覧上に各投稿などに表記にIDを表示してあげる方法を備忘録として残しておく。

コードとしては単純で検索するとたくさんこの方法が出てくる。

function add_posts_columns_postid($columns) { $columns['postid'] = 'ID'; return $columns; } function add_posts_columns_postid_row($column_name, $post_id) { if( 'postid' == $column_name ) { echo $post_id; } } add_filter( 'manage_posts_columns', 'add_posts_columns_postid' ); add_action( 'manage_posts_custom_column', 'add_posts_columns_postid_row', 10, 2 );

functions.phpなどの関数を保存するファイルに記述する事で

投稿一覧に

投稿一覧にID

ただ、この表示だと順番を並び替えたいな~なんて事も出てくるのですが、IDは先頭に出て欲しい。

でもダッシュボードをいじるフックの場合は、あまり好ましくないケースも出てくるので違う方法はないものか?と思ったらプラグインがあった。

コレを使う事で

投稿一覧にID

このようにホバー時に表示される編集などの項目にIDを追加する事ができる。

しかし、このプラグイン自体、2年以上更新されていないし、プラグインとして加えるほどのモノでもないので、これもfunctions.phpに書いてしまう事で同じ機能を付与する事が出来る。

add_action( 'admin_head', 'showid_always_showid' );

//投稿一覧にID表示
function showid_postid_show($actions,$post) {
    if ( current_user_can( 'edit_posts' ) ) {
        if( isset( $actions['edit'] ) ) {
            $actions['edit'] = '<span class="wp-ui-text-primary">' . "ID:" . intval( $post->ID ) . '</span>' . " | " . $actions['edit'];
        }
    }
    return $actions;
}
add_filter( 'post_row_actions', 'showid_postid_show', '10', '2' );

コレを追記してあげる事でホバー表示に追記をすることができる。

他にも、タグやカテゴリー、メディア、リンクといった投稿に表示する事は可能だ。

まあ、言ってしまえばこのプラグインに書いてある内容は、そのままテーマに追加する事ができるので活用すべきだろう。

ライセンスもGPLライセンスで公開されているものだし、改編しての利用は問題ないので使ってみてはいかがだろか。

ちなみにこのプラグイン日本人の方が作ったもので

このサイトの方が作ったもののようです。