2022年02月01日

管理画面の固定ページのカスタマイズ事例


WordPressのデフォルトの固定ページには下記の様な問題点があります。

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

■更新日が表示されない

そこで管理画面の固定ページ画面のカスタマイズ事例を解説します。

 

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

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

 

1.固定ページのメニュ名称の変更

デフォルトでは「固定ページ」、「固定ページ一覧」、「新規追加」という名前が使われている。

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

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

/* 固定ページの名称変更 */
function page_name() {
  global $menu,$submenu;
  $menu[20][0]  = 'ページ';//固定ページを変更
  $submenu['edit.php?post_type=page'][5][0] = 'ページ一覧'; // 固定ページ一覧を変更
  $submenu['edit.php?post_type=page'][10][0] = '新規ページ追加';//新規追加を変更
}
add_action( 'admin_menu', 'page_name' );

■4行目:固定ページ名称の変更

$menu[20][0] = 'ページ';

上記で[固定ページ]が[ページ]に変更されます。

■5行目:一覧名称の変更

$submenu['edit.php?post_type=page'][n][0] = 'ページ一覧';

上記で[固定ページ一覧]が[ページ一覧]に変更されます。

■6行目:新規名称の変更

$submenu['edit.php?post_type=page'][10][0] = '新規ページ追加';

上記で[新規追加]が[新規ページ追加]に変更されます。

 

2.固定ページ一覧画面のデザイン変更

固定ページ一覧の

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

・新設カラムにデータを読み込む:[アクション・フック:manage_pages_custom_column]

を利用します。

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

/* 固定ページの表示項目とデザイン */
function page_design($columns) {
	$columns = array(
		'cb'			    	=> '<input type="checkbox" />',
		'title'				=> 'タイトル', 
		'slug'				=> 'スラッグ', //新規に追加
		'date'			   => '日時',
		'modified'		=> '最終修正日', //新設に追加 
		'author'			=> '作成者',
		'comments'		=> '<div class="comment-grey-bubble" title="コメント"></div>',);
	 echo
  	 '<style>
  			.fixed .column-title {width: 30%;}
  			.fixed .column-slug {width: 30%;}
   			.fixed .column-date {width: 15%;}
  			.fixed .column-modified {width: 15%;}
  			.fixed .column-comments {width: 10%;}
  		</style>'; 
		return $columns;
}
add_filter('manage_pages_columns', 'page_design',10,1);

/* 新設フィードへのデータの読み込み */
function page_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_pages_custom_column', 'page_data_add', 10, 2);

■21行目

add_filter('manage_pages_columns', '関数名',10,1);
始めの10は優先順位、次の1は関数のパラメータの数を指定している。

■32行目

add_action( 'manage_pages_custom_column', '関数名',10,2);
始めの10は優先順位、次の2は関数のパラメータの数を指定している。