WordPress管理画面の投稿一覧では、次の項目が列として表示されています。
- タイトル
- 投稿者
- カテゴリー
- タグ
- コメント
- 日付
このような列は、自身で追加することが可能です。
例えば、投稿IDを投稿一覧に表示することができます。
列の追加は、フィルターとアクションを利用して簡単に行うことができます。
この記事では、WordPress管理画面の投稿一覧にカスタムカラムを追加する方法を解説します。
WordPress管理画面の投稿一覧にカスタムカラムを追加する手順
- フィルターでカスタムカラムを追加
- アクションでカスタムカラムに表示する内容を表示
フィルターはmanage_{$post_type}_posts_columns
を、アクションはmanage_{$post->post_type}_posts_c
ustom_columnを利用します。
WordPress管理画面の投稿一覧にカスタムカラムを追加する方法
フィルターでカスタムカラムを追加
WordPress管理画面の投稿一覧にカスタムカラムを追加するには、
フィルターを利用します。manage_{$post_type}_posts_columns
apply_filters( "manage_{$post_type}_posts_columns", string[] $post_columns )
は、カスタムカラムを追加したい投稿タイプのスラッグに置き換えます。つまり投稿の場合は、{$post_type}
になります。manage_post_posts_columns
引数の$post_columnsに一覧で表示したい項目を連想配列で指定します。
manage_{$post_type}_posts_columns
はカスタムカラムの追加だけでなく、既存カラムの変更や削除も行うことができます。
アクションでカスタムカラムに表示する内容を表示
WordPress管理画面の投稿一覧のカラムに表示する内容は、manage_{$post->post_type}_posts_custom_column
アクションを利用します。
do_action( "manage_{$post->post_type}_posts_custom_column", string $column_name, int $post_id )
{$post->post_type}は、該当する投稿タイプのスラッグを指定します。つまり投稿の場合は、manage_post_posts_custom_columnになります。
$post_idを利用して、そのカラムに表示したい内容を記述します。
WordPress管理画面の投稿一覧にカスタムカラムを追加する具体例
上記で解説したフィルターまたはアクションは、既存テーマをカスタマイズしたい場合、functions.phpに記述します。
投稿IDを表示するカスタムカラムを追加する
カスタムカラムを追加する簡単なサンプルです。投稿一覧のカラムの最後に各投稿に割り振られている投稿IDを表示します。
add_filter('manage_post_posts_columns', function($columns) {
$columns['id'] = '投稿ID'; // 必要に応じてローカライズ
return $columns;
});
add_action('manage_post_posts_custom_column', function($column_name, $post_id) {
if ($column_name == 'id') {
echo $post_id;
}
}, 10, 2);