「投稿とかページのIDを簡単に調べたいんだけど!!!」
ということなので調べて実装してみた。
投稿IDを使ってどうこうするってのはページで使うことが多いですかね、さて。
コードだけ見れればいい、って方は読まずに一番下までいってください。
関数をフックするポイントは 4つ
投稿・ページ一覧画面に ID を表示できればいいので、一覧のタイトル・行 x2 の 4つでした。
関数の説明は割愛、Codex リンクでお届け。
manage_pages_columns
ページ一覧の行タイトルを操るフック。
manage_pages_custom_column
Codex にはまだドキュメントがありませんね。
http://codex.wordpress.org/Plugin_API/Action_Reference/manage_pages_custom_column
ただ、後述の manage_posts_custom_column と内容はほぼ一緒です。
manage_posts_columns
投稿一覧の行タイトルを操るフック。
manage_posts_custom_column
投稿一覧の各行を操るフック。
Codex はサンプルのコードが載っているのでほんとわかりやすいですね。
ということでしゅっと実装して↓
IDを表示するコードができた
こんな感じ。
functions.php に書くと、投稿・ページ一覧に ID が表示されるようになります。
/**
* 投稿・ページ行タイトルに項目 ID を追加する関数
*
* @param $columns
*
* @return mixed
*/
function add_id_to_columns_title( $columns ) {
// 行タイトルに post_id を配列キーとした ID という名前を追加
$columns['post_id'] = __( 'ID' );
// post_id 用のスタイル
echo '<style>.column-post_id{width:40px;}</style>';
return $columns;
}
// 関数をフックして適用
add_filter( 'manage_posts_columns', 'add_id_to_columns_title' );
add_filter( 'manage_pages_columns', 'add_id_to_columns_title' );
/**
* 各行に投稿 ID を出力
*
* @param $column
* @param $post_id
*/
function add_id_to_column_rows( $column, $post_id ) {
switch ( $column ) {
// 行のキーが post_id なら ID を出力
case 'post_id':
echo "<span class='$column-$post_id'>$post_id</span>";
break;
default:
break;
}
}
// 関数をフックして適用
add_filter( 'manage_posts_custom_column', 'add_id_to_column_rows', 10, 2 );
add_filter( 'manage_pages_custom_column', 'add_id_to_column_rows', 10, 2 );

ちなみに、並び替えの実装はしてないので並び替えはできません。
需要があればやろうかしら。
まとめ
プラグインを使ったらできることをあえて、プラグインを使わずやることで勉強になりますほんと。
カテゴリやタグでも他のフックを使えば色々できそうですね。

コメント、してみません?