勉強したことのメモ

webプログラマが勉強したことのメモ。

WordPressのユーザー画像とプロフィール

   

WordPressでユーザー毎に画像とプロフィール部分にHTMLタグを登録したかった。また、登録したものを特定のページに表示させたかった。以下に方法をメモ。

 

画像の登録はプラグインを使う

画像の登録は以下プラグインを使う。インストールして有効化するだけで、ユーザー編集ページに画像登録部分が表示される。

Simple Local Avatars

https://tzm.wordpress.org/plugins/simple-local-avatars/

 

画像の出力とプロフィールのHTML入力

以下をテーマフォルダのfunctions.phpに追記する。

//ユーザーアバター取得
function get_user_avatar_img($userid){
	$tmp_img = get_avatar($userid);
	$search = '/<img.*?src=(["\'])(.+?)\1.*?>/i';
	if(preg_match($search, $tmp_img, $url)){
		$author_img = $url[2];
		$author_img = str_replace('-96x96.png', '.png', $author_img);
		$author_img = '<img src="'.$author_img.'">';
	}else{
		$author_img = get_avatar($userid);
	}
	return $author_img;
}


//ユーザープロフィールにHTML挿入
remove_filter('pre_user_description', 'wp_filter_kses');
add_filter('pre_user_description', 'wp_filter_post_kses');

画像の方はget_avatar関数で出力できるが、この関数を使うとwidthとか色々追記されてしまう。それでも良い場合はget_avatar関数を使えば良いが、まずい場合はget_user_avatar_img関数で画像のurlのみ取得する。

 

出力方法

<?php
$users = get_users( array('orderby' => ID, 'order' => ASC) );
foreach($users as $user){
	$uid = $user->ID;
	$user_data = get_userdata($uid);
	$author_img = get_user_avatar_img($uid);
?>
	画像:<?php echo $author_img;?><br>
	名前:<?php echo $user->display_name;?><br>
	プロフィール:<?php echo $user_data->user_description;?>
<?php } ?>

上記のような形で出力できる。

 - WordPress

  関連記事

WordPressで記事毎に設定した広告を表示させる方法

WordPressでGoogleアドセンスのようなクリック広告ではなく、商品を指 ...

WordPressでSNSボタンが表示されない

WordPressでWordPress WP Social Bookmarkin ...

WordPressのウィジェットをTOPのみ等、特定のページだけ表示する方法

■やりたかった事 TOPページのみ任意のウィジェットを表示させ、記事ページやアー ...

WordPressを外部サーバから投稿する方法

WordPressをダッシュボードからではなく、外部サーバのプログラムから投稿し ...

WordPressの記事公開・更新時に何らかの処理を行う方法

WordPressで記事を公開(予約公開含む)もしくは更新した際に何らかの処理を ...

FeedWordPressでアイキャッチ画像も設定する方法

FeedWordPressで更新記事を取得しつつ、アイキャッチ画像も自動で設定し ...

WordPressにてPHPのAPCuを使用して高速化を図る方法

先日本サイトのサーバにAPCuを導入した。しかしながら所感にも書いたとおりAPC ...

PHP5.1系にWordPressを入れる方法

無料レンタルサーバーにWordPressを突っ込むと、 「 サーバーの PHP ...

WordPressのパーマリンクについて

WordPressのパーマリンクについて、思ったことなんだけど、 ・URLに日本 ...

Advanced Custom FieldsでGoogleMapの使用

Advanced Custom FieldsでGoogleMapを使用したかった ...