【WordPressカスタムテンプレート】「投稿」の表記を変更する方法

こんにちは。そらです。

今回はWordPressの管理画面にデフォルトで入っている「投稿」という部分の名前を変更する方法をお伝えします。

自分が使ったり、クライアントさんに納品する際にも、一目でその「投稿」が「ブログ」なのか、「お知らせ」なのかわかった方がいいですよね。

今回は現役のWebデザイナーである「そら」が実務で使っているコードをご紹介します!

コードをコピペして、functions.phpに貼り付けるだけで大丈夫ですので、手軽に試せます!

コード

/* ---------- 「投稿」の表記変更 ---------- */
function Change_menulabel() {
    global $menu;
    global $submenu;
    $name = 'ブログ';
    $menu[5][0] = $name;
    $submenu['edit.php'][5][0] = $name.'一覧';
    $submenu['edit.php'][10][0] = '新規'.$name.'投稿';
    }
    function Change_objectlabel() {
        global $wp_post_types;
        $name = 'ブログ';
        $labels = &$wp_post_types['post']->labels;
        $labels->name = $name;
        $labels->singular_name = $name;
        $labels->add_new = _x('追加', $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_objectlabel' );
    add_action( 'admin_menu', 'Change_menulabel' );

上記のコードをコピペすれば、完成です。

このコードでは「投稿」から「ブログ」に変えています。

少しコードを弄ってお好みの表記に変えてください!

難しいことは知らなくていいという人はここまでで大丈夫です。

次はもっと詳しいことが知りたい人用にコードの中身を解説しますね!

メニューラベルの変更

この部分について解説します!

function Change_menulabel() {
    global $menu;
    global $submenu;
    $name = 'ブログ';
    $menu[5][0] = $name;
    $submenu['edit.php'][5][0] = $name.'一覧';
    $submenu['edit.php'][10][0] = '新規'.$name.'投稿';
}

この関数ではWordPressの管理画面の左側にある「投稿」メニューの表記を変更します。

global変数について

この部分はそれぞれグローバル変数を使い、メニューとサブメニューをグローバルに呼び出すためのものです。

グローバル変数とは

グローバル変数とは、スクリプトのどこからでもアクセスできる変数のことです。PHPでは、global キーワードを使うことで、関数やメソッドの中からでもグローバル変数にアクセスすることができます。

$menu と $submenu とは

$menu は、WordPressの管理画面に表示されるトップレベルのメニュー項目を格納する配列です。この配列には、ダッシュボード、投稿、メディア、ページなどのメニュー項目が含まれます。

$submenu は、各トップレベルのメニュー項目に関連するサブメニュー項目を格納する配列です。例えば、投稿メニューには「投稿一覧」「新規投稿」などのサブメニューがあります。

その他の部分

  • $name = 'ブログ'; は、新しいメニュー名として「ブログ」を設定しています。
  • $menu[5][0] = $name; で、メインメニューの「投稿」を「ブログ」に変更しています。
  • $submenu['edit.php'][5][0] = $name.'一覧'; で、「投稿一覧」を「ブログ一覧」に変更しています。
  • $submenu['edit.php'][10][0] = '新規'.$name.'投稿'; で、「新規投稿」を「新規ブログ投稿」に変更しています。

$menu, $submenuはそれぞれ格納されている内容が決まっていますので、変更したい部分にアクセスして、変更しています。

オブジェクトラベルの変更

この部分について解説します!

function Change_objectlabel() {
    global $wp_post_types;
    $name = 'ブログ';
    $labels = &$wp_post_types['post']->labels;
    $labels->name = $name;
    $labels->singular_name = $name;
    $labels->add_new = _x('追加', $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.'は見つかりませんでした';
}

この関数は、投稿オブジェクトのラベルを「ブログ」に変更します。

global $wp_post_types;

WordPressでは、投稿タイプ(例えば、「投稿」や「ページ」など)は $wp_post_types というグローバル変数に保存されています。この変数は、WordPressが全ての投稿タイプを管理するためのものです。

これらの投稿タイプを関数の中からでもグローバルスコープ(関数の外)で定義された変数にアクセスできるようにしています。

$labels

$labels は、WordPressのカスタム投稿タイプ(post types)のラベル(表示名)を設定・変更するために使用されるオブジェクトです。このオブジェクトは、投稿タイプが管理画面やフロントエンドでどのように表示されるかを決定します。

$labels オブジェクトには多くのプロパティがありますので、これも一つずつアクセスして変更していきます。

アクションフックの追加

この部分について解説します!

add_action('init', 'Change_objectlabel');
add_action('admin_menu', 'Change_menulabel');

最後にアクションフックを追加して、終了です。

アクションフックはWordPressでテーマ作成をするにあたり重要ですので、ぜひ学んでおいてください!

アクションフックについても近々アップいたします!

まとめ

このカスタマイズにより、WordPressの管理画面で「投稿」という表記が「ブログ」に変更されます。これにより、管理画面の表示をよりサイトの用途に合わせたものに変更することができます。

上記のコードをテーマのfunctions.phpファイルに追加することで、簡単に実現できます。

ご自身の変更したいように、変更したい部分をつまんで、記述してみてください!