WordPressの投稿者毎にヘッダー画像などを切り替える方法
取引先の人からの相談でWordPressの投稿者毎(ユーザーID毎)にヘッダー画像を切り替えるというのをやったのでその方法をご紹介。
目次
WordPressの投稿者毎に切り替える方法
やりたいのはこういうブログがあって投稿者(ユーザー)が複数いてユーザー毎の個別ページ(single.php)とアーカイブページ(archive.php)のヘッダーを任意の画像にしたい!っていう感じ。大抵WordPressで納品する際は代表のユーザーID一個だけで納品していて複数ユーザーで投稿するっていうのはやった事が無かったので調べてやってみた。
ユーザーのプロフィール情報で切り分けると簡単
単純に思いついたのはユーザーのプロフィール情報に画像を入れる領域を作って、画像が有る場合と無い場合を切り分けたら出来るんじゃないかな〜って事でやってみたら超簡単に出来た。
ユーザーのプロフィール情報の追加
ユーザーのプロフィール情報に項目を追加するにはuser_contactmethodsというフィルターを使ったら出来た。
function modify_user_contact_methods( $user_contact ) {
$user_contact['headerimageurl'] = 'ヘッダー画像URL';
return $user_contact;
}
add_filter( 'user_contactmethods', 'modify_user_contact_methods' );
コードはこんな感じ。これをfunction.phpに書くと任意の項目が追加されるはず。
出ました!あとはここに各ユーザー毎に画像パスを入れてやればOK。もっと技術と時間があれば画像挿入ボタンなんか作って任意サイズで切り取りなんかも出来ればなおよしだが、そこまで調べてやってる暇は無いので今回は簡易で。
画像URLの有る・無しで条件分岐
後は追加したプロフィール情報を取得してif文で切り分ければ完成。ユーザーのプロフィール情報はget_the_author_meta()で取得出来たので、それを元に条件分岐させる。
// ヘッダー画像URLで指定した画像
// デフォルト画像
これで完成!上手いこといきました。ユーザー毎に画像やら情報やらを切り分けたい時にはget_the_author_meta()が便利ですな。
SPONCERD
コメントはまだありません