WordPressユーザーページにプロフィールを表示させる

wordpressを使って複数人でメディア運営をしている場合、author.phpを使えば、著者毎のページに記事一覧やプロフィールなどを表示させることができます。

そんなご依頼を先日お受けしました。

ユーザーページを表示させる

wordpressのユーザーページは/author/ユーザー名/のURLで表示することができます。

その際、テーマにauthor.phpやarchive.phpがあればそれらが使われ、author.phpやarchive.phpがないテーマはindex.phpで表示されます。

クライアントのメディアで使われていたtcdテーマにはauthor.phpやarchive.phpも入っておらず、index.phpで表示されていました。index.phpの中でユーザーページ専用の情報を出力させたい時は、is_author()関数で条件分岐させます。

<?php if ( is_author()); ?>
//コンテンツ
<php  endif; ?>

/author/ユーザー名は変更できる

ドメインの後に着く/author/ユーザー名のスラッグは変更することもできます。セキュリティの面から言えば、登録されているユーザー名を知られるということは第三者にとって、パスワードを解析するだけでサイトを乗っ取れるということでもあります。

デフォルトの設定ではユーザページのスラッグが/author/ユーザー名になっているので丸わかり。

Edit Author Slugはスラッグを任意の文字列に変換できるwordpressプラグインです。そのあたりが気になるという方は導入するといいと思います。

例)
https://andpropose.com/author/daisuke

https://andpropose.com/team/hanako

独自の項目を追加・表示させる

プロフィール以外にも住所や趣味、年齢などをリスト的に管理したい時は、ユーザー管理画面の項目を増やすこともできます。

functions.phpに以下を追加します。

add_action('user_contactmethods', function( $user_contact_method ) {

 //入力欄削除
 unset( $user_contact['aim']    );
 unset( $user_contact['jabber'] );

 //入力欄追加
 $user_contact_method['address'] = '住所';
 $user_contact_method[‘age’] = ‘年齢’;
 $user_contact_method[‘from] = ‘出身’;
 return $user_contact_method;
});

Plugin API/Filter Reference/user contactmethods

出力は以下コードをテンプレートに追加すればOKです。

<?php echo get_the_author_meta( ‘名前’ ); ?>
//または
<?php the_author_meta( ‘名前’ ); ?>

便利ですね。

twitterやinstagramなどSNSの表示にも使えるプロフィール表示方法でした。

カスタム投稿タイプを記事一覧に含めたい

ちなみにですが、記事一覧にカスタム投稿タイプを含めたい時は

$args = array(
              'post_type' => array( 'post', 'post_type1' )
               );
get_posts($args);
//とか
$query->set( 'post_type', array( 'post', 'post_type1' ) );
return;

と追加すれば通常の投稿と一緒にカスタム投稿も表示されると思います。

特定ジャンルのメディアを運営している場合などには便利かもしれません。

プラグイン API/アクションフック一覧/pre get posts

Pass On

ikeda
(いけだきょうすけ)1989年生まれ。愛知県のwebデザイナー兼プログラマー兼ライター。基本的に企画からデザイン、プログラミングまで一貫して請け負っているがイラストはへたくそ。誰かの人生がちょっと良くなれば嬉しいです。