WordPressのユーザー画像とプロフィールの登録及び表示方法
2024/02/22
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と別プログラム間でSESSIONが引き継げない場合の対応方法
同一サーバ内に自作したプログラムとWordPressを設置しており両者でセッショ ...
-
-
WordPressにて投稿記事及び固定ページの記事数を取得・表示する方法
WordPressにてページ内に記事数を表示したいというケースがあった。また、通 ...
-
-
WordPressで実行されているSQL文をページ上に表示する方法
WordPressにてWP_Queryで記事を取得しようとしたものの希望の挙動に ...
-
-
WordPressでCSSとHTMLコーディングデータから自作テーマを作成する方法
CSSとHTMLコーディングデータがあり、それをWordPressのテーマに反映 ...
-
-
WordPress内でPHPの独自プログラムページを実装する方法
WordPress内にてPHPで作ったシステムを実装したい。ヘッダー / フッタ ...