function.phpでプロフィール項目の追加と削除

  • Thursday, September 22, 2011

個人が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/

© KOJI KOMIYA.