WordPressのプロフィール項目をカスタマイズして追加する方法

投稿者 : OSCA

[PR] "出川哲朗の充電させてもらえませんか?"で登場したロケ地を紹介するファンサイト「あの場所へ行こう!」はこちら。

WordPressのユーザー(投稿者)プロフィールをWEBサイト上に表示する場合、WordPress標準のユーザー情報の項目だけでは物足りない場合があります。 近年ではプロフィールと一緒にSNSやYouTubeなどへのリンクを一緒に掲載することが多いですが、WordPressのプロフィール項目にはそれらの項目は全くありません。 本稿ではWordPressのプロフィール項目を追加してカスタマイズする方法について解説します。 なお、本稿ではプラグインは利用せず、テーマを編集して実現します。

本稿のゴール

本稿では、WordPressのプロフィール管理画面に、標準のプロフィール項目に加え、「Twitter」「YouTube」の項目を追加することをゴールとします。

標準の仕様を理解する

WordPressのデフォルトでは、次の項目がプロフィールとして設定できます。

  • ニックネーム
  • メールアドレス
  • サイト
  • プロフィール情報
  • プロフィール画像

しかし、これだけの情報では、物足りないことがほとんどで、筆者はWordPressの案件を請ける度に、これから説明するWordPressテーマのカスタマイズをしています。 (本稿最後にある著者欄もです)

プロフィール設定画面のカスタマイズ

まずはWordPress管理画面のプロフィール画面をカスタマイズします。 やることは、利用中のWordPressテーマの functions.php に下記のコードを追加するだけです。 Twitter, YouTube 以外に項目を追加したい場合は、連想配列の代入項目を追加/変更すれば実現できます。

// ユーザープロフィールに独自の項目を追加します
function user_contactmethods_filter($items) {
    $items['twitter']  = 'Twitter (URL)';
    $items['youtube']  = 'YouTube (URL)';
    return $items;
}
add_filter('user_contactmethods', 'user_contactmethods_filter');

このコードを追加するだけで、WordPress管理画面のプロフィール編集画面の入力欄に、下図のように「Twitter」「YouTube」の欄が追加されます。

プロフィールを表示する

カスタマイズしたプロフィール項目は the_author_meta() 関数や get_the_author_meta() 関数を利用することで画面に表示することができます。 例えば今回追加した「Twitter」の項目であれば、次のように実装することで表示することができます。 次の例は、TwitterのURLが空でなければ表示する例です。

<?php if(get_the_author_meta('twitter') != "") { the_author_meta('twitter'); } ?>

WordPressの内部を理解しよう

ここまでの説明で本稿のゴールは達成できていますが、WordPressを更に深く理解するために、もう少し説明をします。

WordPressはMySQLデータベースにデータを保存していますが、ユーザーに関するデータは wp_usermetawp_users という2つのテーブルに情報が保存されています。wp_users テーブルはWordPressのユーザーの基本情報が保存され、プロフィールのような付加情報が wp_usermeta テーブルに保存されています。 wp_usermeta テーブルのテーブル構造は下表の通りです。

カラム名説明
umeta_idBIGINTレコードの一意のキーID (サロゲートキー)
user_idBIGINTユーザーID
meta_keyVARCHAR(255)データのキー
meta_valueLONGTEXT入力されたデータの値

ここで重要なのは meta_keymeta_value の値で、実際にMySQLのテーブルを覗いてみると下表のようにデータが保存されます。 twitteryoutube が本稿により追加したカスタマイズ項目で、 nickname first_name last_name description は標準のプロフィール項目です。

umeta_iduser_idmeta_keymeta_value
11nicknameOSCA
21first_nameKazufumi
31last_nameHamano
41description(プロフィール情報)
291twitterhttps://twitter.com/engineer_osca
301youtubehttps://youtube.com/xxxxxxx

おわりに

本稿ではWordPressのプロフィールに、独自の項目を追加してカスタマイズする方法について解説しました。 皆さんのお仕事のお役に立てれば幸いです。

WordPressのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca