2026年10月29日
2026年10月29日
WordPressのmanage_posts_columnsで列を追加する方法
はじめに
この記事では、WordPressのダッシュボードで「投稿一覧」ページに新しい列を追加するためのmanage_posts_columnsフィルターハックについて紹介します。カスタムメタデータや特定の情報を簡単に表示するために役立つ機能です。
症状・背景
このテーマが必要になる主な場面:
- カスタムメタボックスから取得した情報の列を追加したい場合
- 投稿の更新日時以外のカスタム日付を表示するため
- 特定の投稿タイプで特定の情報を一覧表示したい場合
- 他のプラグインのデータを統合して表示したい場合
手順・設定方法
ステップ1: manage_posts_columnsフィルターを有効にする
# フィルター関数を呼び出すPHPコードを作成します。
function custom_post_column($columns) {
// 新しい列の情報を追加
$new_columns = array(
'custom_meta' => __('カスタムメタデータ', 'textdomain'),
'last_updated' => __('最終更新日時', 'textdomain')
);
// 元々の列と新しい列を組み合わせます。
return array_merge($columns, $new_columns);
}
add_filter('manage_posts_columns', 'custom_post_column');
ステップ2: manage_posts_custom_columnアクションを使用してカラムの内容を表示
# 新しい列に値を出力します。
function custom_column_content($column_name, $post_id) {
switch ($column_name) {
case 'custom_meta':
// カスタムメタデータを読み込みます。
echo get_post_meta($post_id, 'your_custom_key', true);
break;
case 'last_updated':
// 最終更新日時を表示します。
$updated_time = get_the_date('Y-m-d H:i:s', $post_id);
echo $updated_time;
break;
}
}
add_action('manage_posts_custom_column', 'custom_column_content', 10, 2);
ステップ3: カスタムフィールドの情報を取得して表示
# カスタムメタデータを更新する関数を作成します。
function update_custom_meta($post_id) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return;
$meta_value = $_POST['custom_meta'];
update_post_meta($post_id, 'your_custom_key', sanitize_text_field($meta_value));
}
add_action('save_post', 'update_custom_meta');
ステップ4: 画面の更新やエラーハンドリングを確認
# 管理者の権限チェックとフィルターエラーを表示します。
if (!current_user_can('edit_posts'))
return;
// フィルターが有効かどうかをチェック
if (has_action('manage_posts_custom_column', 'custom_column_content')) {
echo "カスタム列の表示設定は正常に動作しています。";
} else {
error_log("エラー: manage_posts_columnsフィルターやアクションが正しくセットアップされていません。");
}
注意事項
- 管理者権限のチェックを必ず行う。
- セキュリティのために、すべてのユーザー入力を適切に洗浄(sanitize)する。
- 投稿タイプやメタボックス情報が変更された場合、コードも更新すること。
- パフォーマンス面で影響がないことを確認し、必要なら非同期処理を検討。
まとめ
1. カスタム列の追加: manage_posts_columnsフィルターを使用して新しい列を作成します。
2. カラムの内容表示: manage_posts_custom_columnアクションを使って各列に値を出力します。
3. メタデータの更新: save_postアクションでカスタムフィールド情報を保存します。
4. 権限とエラーハンドリング: 安全かつ効果的に動作するためのチェックポイントです。
関連記事: