WordPressでデフォルトの投稿の名前や設定を変更する方法。カテゴリーとタグの変更手順も解説。

change-変化 WordPress
記事内に広告が含まれていることがあります。

WordPressを立ち上げるとデフォルトで「投稿」が作成されている。この名前を変更する方法について。

「投稿」「投稿一覧」「新規追加」「カテゴリー」「タグ」など。

これらは大きく2つに分けられる。

  1. 「投稿」の変更
  2. 「カテゴリー」「タグ」の変更

まずは、投稿の表示を変更する方法について。

デフォルトの「投稿」を変更する方法

投稿の中身は大きく2つに分類できる。

  1. メニューの表示内容
  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つのグローバル変数の中身を補足として記述。

  1. $menu[5]
  2. $submenu[‘edit.php’]
  3. $wp_post_types[‘post’]->labels
  4. $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)
}

タイトルとURLをコピーしました