WordPress管理画面の投稿一覧カラムをカスタマイズして作業効率を向上させる方法
WordPressの管理画面にある投稿一覧ページは、日々のコンテンツ管理で頻繁に利用する場所です。
初期状態でも十分便利ですが、一覧に表示するカラムをカスタマイズすることで、さらに使いやすく、作業効率を向上させることができます。
この記事では、投稿一覧カラムのカスタマイズ方法について、WordPress公式の情報源を基に解説します。
投稿IDの追加や不要なカラムの非表示設定、その他追加可能な項目についてもご紹介します。
投稿一覧カラムをカスタマイズするメリット
投稿一覧カラムをカスタマイズすることで、以下のようなメリットが得られます。
- 必要な情報が一目でわかる: 投稿IDやカスタムフィールド値など、デフォルトでは表示されない情報を表示させることで、一覧ページから直接確認できるようになります。
- 不要な情報を非表示にして画面をスッキリさせる: 使用頻度の低いカラムを非表示にすることで、画面がスッキリとし、必要な情報に集中しやすくなります。
- 作業効率の向上: 情報収集や編集作業にかかる時間を短縮し、より効率的にコンテンツ管理を行えるようになります。
投稿一覧カラムのカスタマイズ方法
投稿一覧カラムのカスタマイズは、WordPressの提供するフィルターフックを利用して行います。
主に利用するフックは2種類です。
manage_{$post_type}_posts_columns
manage_posts_custom_column
manage_{$post_type}_posts_columns
は、カラムの項目自体をカスタマイズするためのフィルターフックです。
manage_posts_custom_column
は、各カラムに表示する内容をカスタマイズするためのアクションフックです。
それぞれのフックについて、具体的なコード例を交えながら解説していきます。
カラムの項目を追加する
まずは、投稿一覧に新しいカラム項目を追加する方法を見ていきましょう。
ここでは例として、「投稿ID」カラムを追加してみます。
PHP
function add_post_id_column( $columns ) { $columns['post_id'] = '投稿ID'; return $columns; } add_filter( 'manage_posts_columns', 'add_post_id_column' );
出典: add_filter() – Function | Developer.WordPress.org
上記のコードをテーマの functions.php
ファイルに記述することで、投稿一覧に「投稿ID」カラムが追加されます。
コードの解説
add_filter( 'manage_posts_columns', 'add_post_id_column' );
:manage_posts_columns
フィルターフックにadd_post_id_column
関数を登録しています。function add_post_id_column( $columns ) { ... }
: コールバック関数add_post_id_column
関数を定義しています。引数$columns
は、既存のカラム項目が格納された配列です。$columns['post_id'] = '投稿ID';
:$columns
配列に新しい要素post_id
を追加し、カラム名を ‘投稿ID’ としています。return $columns;
: 変更後の$columns
配列を返しています。
投稿タイプを指定する場合
投稿タイプを指定してカラムをカスタマイズしたい場合は、manage_{$post_type}_posts_columns
フックを利用します。
例えば、投稿タイプ news
の投稿一覧にカラムを追加したい場合は、以下のようにフック名を変更します。
PHP
add_filter( 'manage_news_posts_columns', 'add_post_id_column' );
出典: manage_{$post_type}_posts_columns – Hook | Developer.WordPress.org
カラムに内容を表示する
次に、追加したカラムに内容を表示する方法を見ていきましょう。
ここでは先ほど追加した「投稿ID」カラムに、各投稿のIDを表示させます。
PHP
function display_post_id_column( $column_name, $post_id ) { if ( $column_name === 'post_id' ) { echo $post_id; } } add_action( 'manage_posts_custom_column', 'display_post_id_column', 10, 2 );
出典: add_action() – Function | Developer.WordPress.org
上記のコードを functions.php
ファイルに記述することで、「投稿ID」カラムに各投稿のIDが表示されるようになります。
コードの解説
add_action( 'manage_posts_custom_column', 'display_post_id_column', 10, 2 );
:manage_posts_custom_column
アクションフックにdisplay_post_id_column
関数を登録しています。function display_post_id_column( $column_name, $post_id ) { ... }
: コールバック関数display_post_id_column
関数を定義しています。- 引数
$column_name
は、現在処理中のカラムのキー名が格納されています。 - 引数
$post_id
は、現在処理中の投稿のIDが格納されています。
- 引数
if ( $column_name === 'post_id' ) { ... }
: カラム名が ‘post_id’ の場合に処理を実行する条件分岐です。echo $post_id;
: 投稿IDを表示しています。
投稿タイプを指定してカスタマイズする場合
manage_posts_custom_column
アクションフックは、投稿タイプ別のフックが用意されていません。
投稿タイプを指定したい場合は、manage_{$post_type}_posts_custom_column
というアクションフックを利用します。
例えば、投稿タイプ news
の投稿一覧に内容を表示したい場合は、以下のようにフック名を変更します。
PHP
add_action( 'manage_news_posts_custom_column', 'display_post_id_column', 10, 2 );
カラムを非表示にする
不要なカラムを非表示にするには、manage_posts_columns
フィルターフックで、非表示にしたいカラムの項目をunsetします。
PHP
function remove_columns( $columns ) { unset( $columns['tags'] ); // タグカラムを非表示にする return $columns; } add_filter( 'manage_posts_columns', 'remove_columns' );
上記のコードでは、投稿一覧の「タグ」カラムを非表示にしています。
unset( $columns['カラムのキー名'] );
の部分を書き換えることで、他のカラムも非表示にできます。
非表示にできるデフォルトカラム一覧
投稿一覧でデフォルトで表示される主なカラムと、それぞれのキー名は以下の通りです。これらを非表示にすることが可能です。
キー名 | カラム名 (表示) | 説明 |
---|---|---|
cb |
チェックボックス (一括操作用) | |
title |
タイトル | 投稿タイトル |
author |
作成者 | 投稿の作成者 |
categories |
カテゴリー | 投稿に紐づけられたカテゴリー |
tags |
タグ | 投稿に紐づけられたタグ |
comments |
コメント数 | |
date |
日付 | 投稿日時 (公開日または最終更新日) |
非表示にしたいカラムのキー名は、ブラウザの開発者ツールなどで投稿一覧のHTML構造を調べることで確認できます。
注意点: title
カラムや cb
カラムなど、WordPressの管理画面の基本的な機能に関わるカラムを非表示にすると、操作に支障をきたす場合があります。非表示にするカラムは慎重に選択してください。
追加できるカラムの種類 (詳細)
投稿一覧カラムには、デフォルトカラム以外にも様々な情報を追加できます。代表的な例と、追加することで得られるメリット、表示する情報の取得に役立つWordPress関数を以下に示します。
カラム名 (表示) | キー名 | 説明 | 情報取得に役立つ関数例 |
---|---|---|---|
投稿ID | post_id (例) |
投稿の一意なID | – (投稿IDは $post_id 変数で直接利用可能) |
スラッグ | slug (例) |
投稿のスラッグ (URLの一部) | $post->post_name (global $post; が必要) |
カスタムフィールド (例: 価格) | price (例) |
カスタムフィールドの値 (例: 価格) | get_post_meta( $post_id, 'custom_field_key', true ) |
カテゴリー (ターム名) | category_name (例) |
カテゴリーのターム名 | get_the_category( $post_id ) , get_the_term_list( $post_id, 'category', '', ', ', '' ) |
タグ (ターム名) | tag_name (例) |
タグのターム名 | get_the_tags( $post_id ) , get_the_term_list( $post_id, 'post_tag', '', ', ', '' ) |
投稿者 (ログイン名) | author_login (例) |
投稿者のログイン名 | get_the_author_meta( 'login', $post->post_author ) (global $post; が必要) |
アイキャッチ画像 (サムネイル) | thumbnail (例) |
アイキャッチ画像のサムネイル | get_the_post_thumbnail( $post_id, 'thumbnail' ) |
コメント数 | comment_count (例) |
コメント数 | get_comments_number( $post_id ) |
投稿フォーマット | post_format (例) |
投稿フォーマット | get_post_format( $post_id ) |
公開状態 | post_status (例) |
投稿の公開状態 (公開済、下書き、予約投稿など) | get_post_status( $post_id ) |
メニュー順 | menu_order (例) |
メニュー順 (ページ属性で設定する順序) | $post->menu_order (global $post; が必要) |
カスタムタクソノミー (例: 商品カテゴリ) | product_category (例) |
カスタムタクソノミーのターム名 (例: 商品カテゴリ) | get_the_term_list( $post_id, 'custom_taxonomy_slug', '', ', ', '' ) |
これらの情報を表示するには、manage_posts_custom_column
アクションフック内で、WordPressの各種関数を利用して情報を取得し、HTMLとして出力する必要があります。
例1: 投稿IDを表示する
投稿IDは、投稿を特定するためのユニークな番号です。投稿IDをカラムに追加しておくと、プログラムで投稿を操作する際などにIDをすぐに確認できて便利です。
以下のコードは、投稿一覧に「投稿ID」カラムを追加し、各投稿のIDを表示する例です。
先ほど紹介した内容と同じですが、記述例をまとめて紹介しておきます。
PHP
// カラム項目を追加 function add_post_id_column( $columns ) { $columns['post_id'] = '投稿ID'; return $columns; } add_filter( 'manage_posts_columns', 'add_post_id_column' ); // カラムに投稿IDを表示 function display_post_id_column( $column_name, $post_id ) { if ( $column_name === 'post_id' ) { echo $post_id; } } add_action( 'manage_posts_custom_column', 'display_post_id_column', 10, 2 );
上記のコードを functions.php
ファイルに記述することで、投稿一覧に「投稿ID」カラムが追加され、各投稿のIDが表示されるようになります。
例2: カスタムフィールド値を表示する
もう一つの例として、カスタムフィールド price
の値を表示するカラムを追加してみましょう。
PHP
// カラム項目を追加 function add_price_column( $columns ) { $columns['price'] = '価格'; return $columns; } add_filter( 'manage_posts_columns', 'add_price_column' ); // カラムにカスタムフィールド値を表示 function display_price_column( $column_name, $post_id ) { if ( $column_name === 'price' ) { $price = get_post_meta( $post_id, 'price', true ); // カスタムフィールド値を取得 echo $price; } } add_action( 'manage_posts_custom_column', 'display_price_column', 10, 2 );
出典: get_post_meta() – Function | Developer.WordPress.org
上記のコードでは、get_post_meta()
関数を利用してカスタムフィールド price
の値を取得し、表示しています。
同様の方法で、他のカスタムフィールドや、カテゴリー名、タグ名なども表示できます。
WordPressの関数リファレンス
カラムに表示する情報を取得する際に役立つWordPressの関数リファレンスをいくつかご紹介します。
- get_post_meta() : カスタムフィールドの値を取得する
- get_the_category() : 投稿に紐づけられたカテゴリーを取得する
- get_the_tags() : 投稿に紐づけられたタグを取得する
- get_the_author() : 投稿の作成者名を取得する
- get_the_post_thumbnail() : アイキャッチ画像を取得する
- get_comments_number() : コメント数を取得する
これらの関数を組み合わせることで、様々な情報をカラムに表示できます。
コードの記述場所
投稿一覧カラムをカスタマイズするためのコードは、通常、テーマの functions.php
ファイルに記述します。
functions.php
ファイルは、WordPressテーマの機能拡張を行うためのファイルで、テーマディレクトリ内に存在します。
出典: Theme Functions – Theme Handbook | Developer.WordPress.org
functions.php
ファイルにコードを記述することで、テーマを有効化している間、カスタマイズが適用されます。
注意点
functions.php
ファイルを直接編集する場合は、記述ミスに注意してください。
コードにエラーがあると、サイト全体が正常に動作しなくなる可能性があります。- テーマのアップデートにより
functions.php
ファイルが上書きされる可能性があるため、カスタマイズ内容をバックアップしておくことをおすすめします。 - より安全にカスタマイズを行うためには、子テーマの
functions.php
ファイルを利用するか、プラグインを作成してカスタマイズを行う方法も検討してください。
まとめ
WordPressの投稿一覧カラムをカスタマイズする方法について解説しました。
カラムのカスタマイズは、管理画面の使いやすさを向上させ、作業効率を高めるための有効な手段です。
この記事を参考に、ぜひご自身のWordPress環境に合わせて投稿一覧カラムをカスタマイズしてみてください。
参考情報
関連記事
WordPressの投稿一覧表示の順番を更新日順にする方法
WordPressの投稿の表示はデフォルトで公開日が新しい順に表示されるようになっています。しかし、新しく更新した投稿を先頭に表示させたい場合もあるかと思います。そこで今回はWordPressの投稿の表示順を更新日が新しい順に表示されるように変更する法を紹介します。
WordPressでカスタム投稿を取得してページに表示させる方法
WordPressで作成したカスタム投稿タイプへの投稿を取得してサイトのページに表示させる方法を紹介します。投稿の取得方法としては「WP_Query」と「get_posts」をそれぞれ利用してサブループを使う二つの方法について、記述例とともに紹介していきます。また、取得した投稿をページに表示させる方法についても紹介していきます。
WordPressのカスタム投稿タイプを作成する方法
WordPressの「functions.php」にコードを追加してカスタム投稿タイプを作成する方法を紹介します。
コメントを残す