カスタム投稿を追加した場合、記事一覧の項目を編集したいことが多いが、その場合は以下のようにする。
カスタム投稿の名称が『news』の場合
function custom_news_columns($columns){ $columns['url'] = "サイトURL"; return $columns; } function add_news_column($column_name, $post_id){ if( $column_name == 'url' ){ echo get_post_meta($post_id, 'my_url', true); } } add_filter( 'manage_edit-news_columns', 'custom_news_columns' ); add_action( 'manage_posts_custom_column', 'add_news_column', 10, 2 );
を『functions.php』に追加する。
『add_filter』の第一引数『manage_edit-news_columns』は、『news』という部分をカスタム投稿の名称にする。例えば、カスタム投稿が『movie』なら、『manage_edit-movie_columns』となる。第二引数『custom_news_columns』は実行する関数名。この関数内で記事一覧の列を追加する。(これだけだと、まだ内容までは追加されず、列が追加されるだけ。)
『add_action』の第一引数は『manage_posts_custom_column』をこのまま使う。第二引数『add_news_column』は実行する関数名。この中で、追加した列に表示したい値を取得して『echo』などで出力する。
1つ注意点。関数『add_news_column』内の『if( $column_name == ‘url’ ){』の部分と、関数『custom_news_columns』内の『$columns[‘url’]』という部分があるが、これらの『url』部分を合わせる必要があることを忘れずに。
ちなみに『get_post_meta』は、カスタムフィールドの値を取得する関数。以下のようなフォーマットになる。
get_post_meta(「記事のID」,「カスタムフィールドの名称」,true)
これの詳細についてはまたいずれ。