2022年04月12日

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


ここではWordPressの管理画面の

1.メニュ名称の変更

2.一覧画面の表示カラムのカスタマイズ

を行う方法を解説します。

 

1.メニュ名称の変更

WordPressの管理画面は下記仕様で構成されています。

メニュ画像 表示名称 ID番号 プログラム名
ダッシュボード 2 index.php
投稿 5 edit.php
メディア 10 upload.php
固定ページ 20 edit.php?post_type=page
コメント 25 edit-comments.php
外観 60 themes.php
プラグイン 65 plugins.php
ユーザー 70 users.php
ツール 75 tools.php
設定 80 options-general.php

 

1.上表の表示名称を変更する関数の基本形

表示名称には[名称]、[一覧]、[新規]があります。

下記が[functions.php]に記述する基本形になります。

function ××() {
  global $menu,$submenu;
  $menu[ID番号][0]  = 'メニュの名前';
  $submenu['プログラム名'][5][0] = '一覧の名前';
  $submenu['プログラム名'][10][0] = '新規追加の名前';
}
add_action( 'admin_menu', '××' );

■2行目

グローバル変数の「$menu」と「$submenu」を必ず取り込みます。

■3行目:メニュの名前の変更

$menu[ID番号][0]を指定し、変更するメニュの新しい名前を指定します。

・投稿の場合は[5][0]

・固定ページの場合は[20][0]

・メディアの場合は[10][0]

■4行目:一覧の名前の変更

$submenu[プログラム名][5][0]を指定し、変更するメニュの新しい一覧名称を指定します。

・投稿一覧を変える場合は[edit.php][5][0]

・固定ページ一覧を変える場合は[edit.php?post_type=page][5][0]

■5行目:新規追加の名前の変更

$submenu[プログラム名][10][0]を指定し、変更するメニュの新しい一覧名称を指定します。

・投稿の新規追加を変更する場合は[edit.php][10][0]

・固定ページの新規追加を変更する場合は[edit.php?post_type=page][10][0]

■7行目:アクションフックの「admin_menu」で書き込みます。

事例はActionフック:admin_menuを参照して下さい。

 

2.一覧画面の表示カラムのカスタマイズ

一覧画面には「投稿一覧」、「固定ページ一覧」、「カスタム投稿一覧」があり表示するカラムは下記で指定します。

■表示カラムの定義:フィルタ・フックで指定します。

■新設カラムへのデータ取り込み:アクション・フックで指定します。

 

1.表示カラムの定義

どの画面に フィルタ・フック名 備考
投稿画面 manage_posts_columns
カスタム投稿画面 manage_edit-××_columns ××はカスタム投稿名
固定ページ画面 manage_pages_columns

下記は投稿一覧画面にスラッグと更新日を追加したサンプルです。

[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);

新設カラム以外は規定値。表示順番は上から下。

 

2.新設カラムへのデータ取り込み

どの画面に アクションフック名 備考
投稿画面 manage_posts_custom_column カスタム投稿もこれを使う
固定ページ画面 manage_pages_custom_column

下記は投稿一覧画面の新設カラムにデータを取り込む事例です。

[functions.php]に下記を記述します。

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

 

3.具体的な記述サンプル

詳細は下記ドキュメントを参照してください。

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

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