WordPress管理画面の投稿一覧カラムをカスタマイズして作業効率を向上させる方法

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の関数リファレンスをいくつかご紹介します。

これらの関数を組み合わせることで、様々な情報をカラムに表示できます。

コードの記述場所

投稿一覧カラムをカスタマイズするためのコードは、通常、テーマの functions.php ファイルに記述します。
functions.php ファイルは、WordPressテーマの機能拡張を行うためのファイルで、テーマディレクトリ内に存在します。

出典: Theme Functions – Theme Handbook | Developer.WordPress.org

functions.php ファイルにコードを記述することで、テーマを有効化している間、カスタマイズが適用されます。

注意点

  • functions.php ファイルを直接編集する場合は、記述ミスに注意してください。
    コードにエラーがあると、サイト全体が正常に動作しなくなる可能性があります。
  • テーマのアップデートにより functions.php ファイルが上書きされる可能性があるため、カスタマイズ内容をバックアップしておくことをおすすめします。
  • より安全にカスタマイズを行うためには、子テーマの functions.php ファイルを利用するか、プラグインを作成してカスタマイズを行う方法も検討してください。

まとめ

WordPressの投稿一覧カラムをカスタマイズする方法について解説しました。
カラムのカスタマイズは、管理画面の使いやすさを向上させ、作業効率を高めるための有効な手段です。

この記事を参考に、ぜひご自身のWordPress環境に合わせて投稿一覧カラムをカスタマイズしてみてください。

参考情報

関連記事

コメントを残す





This site uses Akismet to reduce spam. Learn how your comment data is processed.