WordPressを立ち上げるとデフォルトで「投稿」が作成されている。この名前を変更する方法について。
「投稿」「投稿一覧」「新規追加」「カテゴリー」「タグ」など。
これらは大きく2つに分けられる。
- 「投稿」の変更
- 「カテゴリー」「タグ」の変更
まずは、投稿の表示を変更する方法について。
デフォルトの「投稿」を変更する方法
投稿の中身は大きく2つに分類できる。
- メニューの表示内容
- ページの表示内容
メニューの表示内容を変更する
まずはメニューに記載されている「投稿」「投稿一覧」「新規追加」を変更する方法について。
「投稿」はWordpress内でデフォルトで定義されている変数$menuの中の[5][0]で指定されている。(6個目のプロパティの中の1番目の値)
「投稿一覧」と「新規追加」はWordpress内でデフォルトで定義されている変数$submenuの中の[‘edit.php’][5][0]と[‘edit.php’][10][0]で指定されている。
実例
それぞれを、「ニュース」「ニュース一覧」「ニュース追加」に変更する。
function change_menu() {
global $menu;
global $submenu;
$name = 'ニュース';
$menu[5][0] = $name;
$submenu['edit.php'][5][0] = $name.'一覧';
$submenu['edit.php'][10][0] = $name . '追加';
}
add_action( 'admin_menu', 'change_menu' );
$nameという変数を定義することで、後々変更するときにここを変更すれば全体が変わるようになる。
add_action関数のアクションフックは、admin_menuを指定する。
狙い通りに変更が完了。
ページの表示内容
次にページの表示内容を変更する。ここの項目はデフォルトで定義されている変数 $wp_post_types の中のpost の中のlabelsオブジェクトに記述されている。
先ほどと異なり、編集するデータは配列ではなく、オブジェクトになる。このため値を変更する時は、アロー関数(->)でオブジェクトの中のプロパティ名を指定する。
function change_post_page() {
global $wp_post_types;
$name = 'ニュース';
$labels = &$wp_post_types['post']->labels;
$labels->add_new = $name . "追加";
$labels->name = $name;
$labels->singular_name = $name;
$labels->add_new = _x($name .'を追加', $name);
$labels->add_new_item = $name.'の新規追加';
$labels->edit_item = $name.'の編集';
$labels->new_item = '新規'.$name;
$labels->view_item = $name.'を表示';
$labels->search_items = $name.'を検索';
$labels->not_found = $name.'が見つかりませんでした';
$labels->not_found_in_trash = 'ゴミ箱に'.$name.'は見つかりませんでした';
}
add_action( 'init', 'change_post_page' );
・$labels = &$wp_post_types[‘post’]->labels; で使われている「&」は参照(リファレンス)といい、これをつけることで、変数の実態を指定し、大元のデータを変更することができる。
「&」をつけない場合は、変数をコピーしてくるので、余計なリソースを必要とする。
・アクションフックの実行タイミングはinitを指定。
管理画面をリロードすれば、右側のページの中身が「ニュース」に切り替わっていることを確認できる。
コピペ用コード
////デフォルトの投稿を変更
function change_menu() {
global $menu;
global $submenu;
$name = 'ニュース';
$menu[5][0] = $name;
$submenu['edit.php'][5][0] = $name.'一覧';
$submenu['edit.php'][10][0] = $name . '追加';
}
add_action( 'admin_menu', 'change_menu' );
function change_post_page() {
global $wp_post_types;
$name = 'ニュース';
$labels = &$wp_post_types['post']->labels;
$labels->add_new = $name . "追加";
$labels->name = $name;
$labels->singular_name = $name;
$labels->add_new = _x($name .'を追加', $name);
$labels->add_new_item = $name.'の新規追加';
$labels->edit_item = $name.'の編集';
$labels->new_item = '新規'.$name;
$labels->view_item = $name.'を表示';
$labels->search_items = $name.'を検索';
$labels->not_found = $name.'が見つかりませんでした';
$labels->not_found_in_trash = 'ゴミ箱に'.$name.'は見つかりませんでした';
}
add_action( 'init', 'change_post_page' );
「カテゴリー」「タグ」の変更
「カテゴリー」と「タグ」を変更する場合は、デフォルトで定義されている $wp_taxonomies という変数の中の [‘category’] と [‘post_tag’] の中身を変更する。
「カテゴリー」を「ITニュース」に変更する
function change_category_taxonomy()
{
global $wp_taxonomies;
$name = 'ITニュース';
$wp_taxonomies['category']->labels = (object)array(
'name' => $name,
'menu_name' => $name . ' (menu)',
'singular_name' => $name,
'search_items' => $name . 'を検索',
'popular_items' => '人気の' . $name,
'all_items' => $name . '一覧',
'parent_item' => null, // Tags aren't hierarchical
'parent_item_colon' => null,
'edit_item' => $name . 'の編集',
'update_item' => $name . 'のアップデート',
'add_new_item' => $name . 'を追加',
'new_item_name' => '新しい' . $name,
'separate_items_with_commas' => 'カテゴリはカンマで区切る',
'add_or_remove_items' => $name . 'の追加または削除',
'choose_from_most_used' => '最も使われている' . $name,
);
}
add_action( 'init', 'change_category_taxonomy');
セーブして管理画面をリロード。
「カテゴリー」が指定した「ITニュース」に変更されていることがわかる。
「タグ」を「エンタメ」に変更する
変更方法は先ほどとほぼ同じ。$wp_taxonomies で [‘post_tag’] を指定する。
function change_tag_taxonomy()
{
global $wp_taxonomies;
$name = 'エンタメ';
$wp_taxonomies['post_tag']->labels = (object)array(
'name' => $name,
'menu_name' => $name . ' (menu)',
'singular_name' => $name,
'search_items' => $name . 'を検索',
'popular_items' => '人気の' . $name,
'all_items' => $name . '一覧',
'parent_item' => null, // Tags aren't hierarchical
'parent_item_colon' => null,
'edit_item' => $name . 'の編集',
'update_item' => $name . 'のアップデート',
'add_new_item' => $name . 'を追加',
'new_item_name' => '新しい' . $name,
'separate_items_with_commas' => 'カテゴリはカンマで区切る',
'add_or_remove_items' => $name . 'の追加または削除',
'choose_from_most_used' => '最も使われている' . $name,
);
}
add_action( 'init', 'change_tag_taxonomy');
セーブして管理画面をリロード。
「タグ」が指定した「エンタメ」に変更されていることがわかる。
以上でデフォルトの投稿の変更が完了。
デフォルトで定義されているグローバル変数の中身
今回使用した4つのグローバル変数の中身を補足として記述。
- $menu[5]
- $submenu[‘edit.php’]
- $wp_post_types[‘post’]->labels
- $wp_taxonomies[‘category’]
global $menu[5]
array(7) {
[0]=>
string(6) "投稿"
[1]=>
string(10) "edit_posts"
[2]=>
string(8) "edit.php"
[3]=>
string(0) ""
[4]=>
string(37) "menu-top menu-icon-post open-if-no-js"
[5]=>
string(10) "menu-posts"
[6]=>
string(20) "dashicons-admin-post"
}
global $submenu[‘edit.php’]
array(4) {
[5]=>
array(3) {
[0]=>
string(12) "投稿一覧"
[1]=>
string(10) "edit_posts"
[2]=>
string(8) "edit.php"
}
[10]=>
array(3) {
[0]=>
string(21) "投稿を追加"
[1]=>
string(10) "edit_posts"
[2]=>
string(12) "post-new.php"
}
[15]=>
array(3) {
[0]=>
string(15) "カテゴリー"
[1]=>
string(17) "manage_categories"
[2]=>
string(31) "edit-tags.php?taxonomy=category"
}
[16]=>
array(3) {
[0]=>
string(6) "タグ"
[1]=>
string(16) "manage_post_tags"
[2]=>
string(31) "edit-tags.php?taxonomy=post_tag"
}
}
global $wp_post_types[‘post’]->labels
object(stdClass)#6838 (32) {
["name"]=>
string(6) "投稿"
["singular_name"]=>
string(6) "投稿"
["add_new"]=>
string(12) "新規追加"
["add_new_item"]=>
string(21) "新規投稿を追加"
["edit_item"]=>
string(15) "投稿を編集"
["new_item"]=>
string(12) "新規投稿"
["view_item"]=>
string(15) "投稿を表示"
["view_items"]=>
string(21) "投稿一覧を表示"
["search_items"]=>
string(15) "投稿を検索"
["not_found"]=>
string(42) "投稿が見つかりませんでした。"
["not_found_in_trash"]=>
string(57) "ゴミ箱内に投稿が見つかりませんでした。"
["parent_item_colon"]=>
NULL
["all_items"]=>
string(12) "投稿一覧"
["archives"]=>
string(21) "投稿アーカイブ"
["attributes"]=>
string(15) "投稿の属性"
["insert_into_item"]=>
string(15) "投稿に挿入"
["uploaded_to_this_item"]=>
string(36) "この投稿へのアップロード"
["featured_image"]=>
string(24) "アイキャッチ画像"
["set_featured_image"]=>
string(33) "アイキャッチ画像を設定"
["remove_featured_image"]=>
string(33) "アイキャッチ画像を削除"
["use_featured_image"]=>
string(39) "アイキャッチ画像として使用"
["filter_items_list"]=>
string(27) "投稿一覧を絞り込む"
["filter_by_date"]=>
string(21) "日付で絞り込む"
["items_list_navigation"]=>
string(36) "投稿リストナビゲーション"
["items_list"]=>
string(15) "投稿リスト"
["item_published"]=>
string(30) "投稿を公開しました。"
["item_published_privately"]=>
string(36) "投稿を限定公開しました。"
["item_reverted_to_draft"]=>
string(39) "投稿を下書きに戻しました。"
["item_scheduled"]=>
string(30) "投稿を予約しました。"
["item_updated"]=>
string(30) "投稿を更新しました。"
["menu_name"]=>
string(6) "投稿"
["name_admin_bar"]=>
string(6) "投稿"
}
global $wp_taxonomies[‘category’]
object(WP_Taxonomy)#484 (28) {
["name"]=>
string(8) "category"
["label"]=>
string(15) "カテゴリー"
["labels"]=>
object(stdClass)#463 (24) {
["name"]=>
string(15) "カテゴリー"
["singular_name"]=>
string(15) "カテゴリー"
["search_items"]=>
string(24) "カテゴリーを検索"
["popular_items"]=>
NULL
["all_items"]=>
string(21) "カテゴリー一覧"
["parent_item"]=>
string(18) "親カテゴリー"
["parent_item_colon"]=>
string(19) "親カテゴリー:"
["edit_item"]=>
string(24) "カテゴリーを編集"
["view_item"]=>
string(24) "カテゴリーを表示"
["update_item"]=>
string(24) "カテゴリーを更新"
["add_new_item"]=>
string(30) "新規カテゴリーを追加"
["new_item_name"]=>
string(24) "新規カテゴリー名"
["separate_items_with_commas"]=>
NULL
["add_or_remove_items"]=>
NULL
["choose_from_most_used"]=>
NULL
["not_found"]=>
string(51) "カテゴリーが見つかりませんでした。"
["no_terms"]=>
string(21) "カテゴリーなし"
["filter_by_item"]=>
string(30) "カテゴリーで絞り込む"
["items_list_navigation"]=>
string(45) "カテゴリーリストナビゲーション"
["items_list"]=>
string(24) "カテゴリーリスト"
["most_used"]=>
string(18) "よく使うもの"
["back_to_items"]=>
string(31) "← カテゴリーへ移動"
["menu_name"]=>
string(15) "カテゴリー"
["name_admin_bar"]=>
string(8) "category"
}
["description"]=>
string(0) ""
["public"]=>
bool(true)
["publicly_queryable"]=>
bool(true)
["hierarchical"]=>
bool(true)
["show_ui"]=>
bool(true)
["show_in_menu"]=>
bool(true)
["show_in_nav_menus"]=>
bool(true)
["show_tagcloud"]=>
bool(true)
["show_in_quick_edit"]=>
bool(true)
["show_admin_column"]=>
bool(true)
["meta_box_cb"]=>
string(24) "post_categories_meta_box"
["meta_box_sanitize_cb"]=>
string(40) "taxonomy_meta_box_sanitize_cb_checkboxes"
["object_type"]=>
array(1) {
[0]=>
string(4) "post"
}
["cap"]=>
object(stdClass)#471 (4) {
["manage_terms"]=>
string(17) "manage_categories"
["edit_terms"]=>
string(15) "edit_categories"
["delete_terms"]=>
string(17) "delete_categories"
["assign_terms"]=>
string(17) "assign_categories"
}
["rewrite"]=>
array(4) {
["with_front"]=>
bool(true)
["hierarchical"]=>
bool(true)
["ep_mask"]=>
int(512)
["slug"]=>
string(8) "category"
}
["query_var"]=>
string(13) "category_name"
["update_count_callback"]=>
string(0) ""
["show_in_rest"]=>
bool(true)
["rest_base"]=>
string(10) "categories"
["rest_controller_class"]=>
string(24) "WP_REST_Terms_Controller"
["rest_controller"]=>
NULL
["default_term"]=>
NULL
["sort"]=>
NULL
["args"]=>
NULL
["_builtin"]=>
bool(true)
}