カスタム投稿で投稿者を表示する方法【WordPress】

WordPress

 

こんにちは!フォトグラファー&Web制作のじゅんぺい(@junpei_sugiyama)です!

今回は、

カスタム投稿で投稿者が表示されてないけど、どうやって表示させるの?

 

 

といった方に対する記事となります。

カスタム投稿はデフォルトでは投稿者は表示できない

まず通常の投稿の場合ですが、表示オプションを開くと投稿者という項目があります。

 

しかしカスタム投稿の場合は項目がありません。

 

なので、ここに投稿者の項目を表示されるようにしたいと思います。

functions.phpにコードを追記

以下のコードをfunctions.phpに追記して下さい。

<?php
add_action('admin_menu', 'myplugin_add_custom_box');
function myplugin_add_custom_box()
{
  if (function_exists('add_meta_box')) {
      add_meta_box('myplugin_sectionid', __('投稿者', 'myplugin_textdomain'), 'post_author_meta_box', 'カスタム投稿名', 'advanced');
  }
}
function manage_投稿タイプスラッグ_columns ($columns) {
  $columns['author'] = '投稿者';
  return $columns;
}
function add_投稿タイプスラッグ_column ($column, $post_id) {
  if ('author' == $column) {
      $value = get_the_term_list($post_id, 'author');
      echo attribute_escape($value);
  }
}
add_filter('manage_posts_columns', 'manage_投稿タイプスラッグ_columns');
add_action('manage_posts_custom_column', 'add_投稿タイプスラッグ_column', 10, 2);

ここで「投稿タイプスラッグ」とありますが、これはCustom Post Type UIで作成した場合は以下で確認出来ます。

 

この場合はお客様の声というカスタム投稿で、投稿タイプスラッグはvoiceとなります。

なのでfunctions.phpはこのようになります。

<?php
add_action('admin_menu', 'myplugin_add_custom_box');
function myplugin_add_custom_box()
{
  if (function_exists('add_meta_box')) {
      add_meta_box('myplugin_sectionid', __('投稿者', 'myplugin_textdomain'), 'post_author_meta_box', 'カスタム投稿名', 'advanced');
  }
}
function manage_voice_columns ($columns) {
  $columns['author'] = '投稿者';
  return $columns;
}
function add_voice_column ($column, $post_id) {
  if ('author' == $column) {
      $value = get_the_term_list($post_id, 'author');
      echo attribute_escape($value);
  }
}
add_filter('manage_posts_columns', 'manage_voice_columns');
add_action('manage_posts_custom_column', 'add_voice_column', 10, 2);

するとカスタム投稿でも表示オプションに投稿者の項目が表示されるようになりました。

 

以上になります。