個人がWebサイト持つってのもオールドスクール気分になりつつある昨今、久しぶりにWordPressにふれる。
管理してるサイトの投稿者別プロフィールを固定ページにまとめようと思い立ったのですが、the_author_metaで扱える項目がなんとも微妙。AIMとか要らんのですよ。今時プロフィールつったらTwitterとかFacebookの項目がないと!
自分一人のプロフィールなんてのは固定ページに直接書けば済むことですが、投稿者が複数いる場合、追加・変更を各人でやれないのがちょっと面倒。
検索してみましたら、プロフィール項目の追加(削除)はfunction.phpを使えば良いんですね。最初wp-includesの中のfunctions.phpと勘違いしましたゴメンナサイ。テーマフォルダに入れとくやつだったとです。今まで他人の作ったテーマ(=ちゃんとしたテーマ)使ったことなかったので、存在すら知りませんでしたよ!あは…あははは…は…。
概出しまくりでわざわざここにコード載せるまでもないけど、忘れた時の自分に向けて。
<?php function update_profile_fields( $contactmethods ) { $contactmethods['twitter'] = 'Twitter'; $contactmethods['facebook'] = 'Facebook'; unset($contactmethods['aim']); return $contactmethods; } add_filter('user_contactmethods','update_profile_fields',10,1); ?>
このコードをfunction.phpに追加すればよろし。というかこれしか書いてない。
<div class="profile"> <dl> <dt><?php the_author_meta('last_name', 1); ?> <?php the_author_meta('first_name', 1); ?></dt> <dd class="italic"><?php the_author_meta('nickname', 1); ?></dd> <dd class="italic"><?php the_author_meta('occupation', 1); ?></dd> <dd>Web site : <a href="<?php the_author_meta('user_url', 1); ?>"> <?php the_author_meta('user_url', 1); ?></a></dd> <dd>Facebook: <a href="<?php the_author_meta('facebook', 1); ?>"> <?php the_author_meta('facebook', 1); ?></a></dd> <dd>Twitter : <a href="<?php the_author_meta('twitter', 1); ?>"> <?php the_author_meta('twitter', 1); ?></a></dd> </dl> </div>
表示させるページテンプレートの記述はこんな感じにした。
(1の部分はユーザーID。通常、追加ユーザーは追加順で1から連番)
ほんとはurl部分を自動でハイパーリンクしてくれるAdvanced-Make-Clickableプラグインが使えればスッキリするんだけどね…。
それにしてもこのfunction.phpはいろいろカスタマイズコードがあるみたいで、使い方次第で、プラグインを使うほどではない、ちょっとした気になる部分とか解消できそうです。
3.0からfunction.phpを使った機能追加が増えてるみたいですね。
【参考サイト】
WebDesignRecipe : WordPress のよくあるカスタマイズコード
http://webdesignrecipes.com/wordpress-customize-with-functions-php/