2022年02月01日

管理画面の投稿のカスタマイズ事例


WordPressのデフォルトの投稿画面には下記の様な問題点があります。

■スラッグ名が表示されない

■更新日が表示されない

そこで管理画面の投稿画面のカスタマイズ事例を解説します。

 

尚、全体像は下記ドキュメントを参照して下さい。

管理画面のカスタマイズの基本知識

 

 

1.投稿メニュの名称変更

デフォルトでは「投稿」、「投稿一覧」、「新規追加」という名前が使われています。

これを「ブログ」、「ブログ一覧」、「新規ブログ追加」に変更するには、、アクションフック:admin_menuを利用します。

functions.phpに下記を追加します。

/* 投稿の名称変更 */
function pots_name() {
  global $menu,$submenu;
  $menu[5][0]  = 'ブログ';
  $submenu['edit.php'][5][0] = 'ブログ一覧';
  $submenu['edit.php'][10][0] = '新規ブログ作成';
}
add_action( 'admin_menu', 'pots_name' );

■4行目

$menu[5][0] = 'ブログ';

上記で[投稿]が[ブログ]に変更されます。

■5行目

$submenu['edit.php'][5][0] = 'ブログ一覧';

上記で[投稿一覧]が[ブログ一覧]に変更されます。

■6行目

$submenu['edit.php'][10][0] = '新規ブログ作成';

上記で[新規追加]が[新規ブログ作成]に変更されます。

 

2.投稿一覧画面のデザイン変更

投稿ページ一覧の

・デザインを変更:[フィルターフック:manage_posts_columns]

・新設カラムのデータ取り込み:[アクション・フック:manage_posts_custom_column]

を利用します。

functions.phpに下記を追加します。

/* 投稿の表示項目とデザイン */
function posts_design($columns) {
	$columns = array(
		'cb'				 => '<input type="checkbox" />',
		'title'				=> 'タイトル', 
		'slug'				=> 'スラッグ', //新規に追加
		'categories'	=> 'カテゴリ',  
		'tags'			   => 'タグ',        
		'date'			   => '日時',
		'modified'		=> '最終修正日', //新規に追加  
		'author'			=> '作成者',
		'comments'		=> '<div class="comment-grey-bubble" title="コメント"></div>',);
	echo
  	'<style>
  		.fixed .column-title {width:30%;}
  		.fixed .column-slug {width:20%;}
  		.fixed .column-categories {width:13%;}
  		.fixed .column-tags {width:13%;}
  		.fixed .column-date {width:10%;}
  		.fixed .column-modified {width:10%;}
  		.fixed .column-comments {width:4%;}
  	</style>'; 	
	return $columns;
}
add_filter('manage_posts_columns', 'posts_design',10,1);

/* 新設フィードへのデータの読み込み */
function posts_data_add($column_name, $post_id) {
  $post = get_post($post_id);
  if($column_name == 'slug') {
     $slug = $post->post_name;
     echo esc_html($slug);}
  else if($column_name == 'modified'){
	 echo the_modified_date();}
}
add_action( 'manage_posts_custom_column', 'posts_data_add', 10, 2 );

■25行目:カラムデザイン

add_filter('manage_posts_columns', '関数名',10,1);

始めの10は優先順位、次の1は関数のパラメータの数を指定している。

■36行目:新規カラムデータの取り込み

add_action( 'manage_posts_custom_column', '関数名',10,2);

始めの10は優先順位、次の2は関数のパラメータの数を指定している。

この関数の中で新規カラムにデータを取り込んでいる。