Help us understand the problem. What is going on with this article?

WordPress 管理画面の投稿一覧にカラムを追加してカスタムフィールドの値を出す

More than 1 year has passed since last update.

仕様

  • 管理画面の投稿・固定ページ・カスタム投稿タイプの投稿一覧にカスタムフィールドの値を出す
  • カラムの場所も調整したい

スクリーンショット 2017-02-08 17.46.52.png

なお、カスタム分類を追加するのは register_taxonomy()show_admin_column 引数でできるのでよしなに(デフォルトでは出ないけど)
https://developer.wordpress.org/reference/functions/register_taxonomy/

カラムの追加と削除

フィルターフックで

ビルトインのカラムについては上記のリンク先参照

add_column.php
<?php
// カスタム投稿タイプ book の投稿一覧で作成者名を削除し、本の著者名を追加
function add_book_columns( $columns ) {
    // 削除(作成者名)
    unset( $columns['author'] );

    // 追加
    $new_columns = array(
        'book_author' =>  __( 'Book Author', 'my_theme' ),
    );
    $columns = array_merge( $columns, $new_columns );

    return $columns;
}
add_filter( 'manage_book_posts_columns' , 'add_book_columns' );

任意の場所に追加したいときは foreach を回そう

add_column2.php
<?php
// カスタム投稿タイプ book の投稿一覧で日付の前に、本の著者名を追加
function add_book_columns( $columns ) {
    $new_columns = array();
    foreach ( $columns as $column_name => $column_display_name ) {
        if ( $column_name == 'date' ) {
            $new_columns['book_author'] = __( 'Book Author', 'my_theme' );
        }
        $new_columns[ $column_name ] = $column_display_name;
    }   
    return $new_columns;
}
add_filter('manage_book_posts_columns' , 'add_book_columns');

カラムの中身

追加したカラムの中身に何かしら入れるためにはアクションフックで

例ではカスタムフィールドの値だが、投稿に紐付いてる情報であればアイキャッチ画像などでもOK

add_column_content.php
<?php
// カスタム投稿タイプ book の投稿一覧で 追加した著者名のカラムでその投稿のカスタムフィールド book_author_name を表示
add_action( 'manage_book_posts_custom_column' , 'custom_book_column', 10, 2 );
function custom_book_column( $column, $post_id ) {
    switch ( $column ) {
        case 'book_author' : 
            echo get_post_meta( $post_id , 'book_author_name' , true ); 
            break;

    }
}

現場からは以上です。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away