このサイトは投稿者が2人いるのでそれぞれのプロフィールをサイドバーに表示したいと思います。
サイドバーにプロフィールを表示するプラグインもありますが、大体がプラグインにプロフィール情報を持たせる形です。
プロフィール情報はwordpressのユーザープロフィールを使いたいので一工夫しました。
ショートコードの作成
ショートコードを使ってテキストウィジェット内で自分でデザインしてプロフィールを表示します。
以下のコードをfunctions.phpに追加。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function my_getuserdata($atts) { extract(shortcode_atts(array( 'id' => 1, 'property' => 'display_name', ), $atts)); $user = get_userdata($id); if ($property == 'avatar') { $image = get_avatar($id, 150); preg_match("/src='(.*?)'/", $image, $match); return "<img style=\"border-radius:75px;-webkit-border-radius:75px;-moz-border-radius:75px;\" src=\"$match[1]\" width=\"150\" height=\"150\" />"; } else { return $user->get($property); } } add_shortcode('userdata', 'my_getuserdata'); add_filter('widget_text', 'do_shortcode'); |
[userdata]というショートコードを作成しました。
ユーザーID(id)と取得したい項目(property)を指定することで値を取得してくれます。
アバターを取得する場合はget_avatarだとimgタグ付きの値が取れてしまうのでデザイン変更が難しくなります。
そこでこちらが欲しいデザインにしてから値を返すようにしました。
最後のadd_filterはショートコードをテキストウィジェットで使えるようにするコードです。
プロフィール(投稿者情報)項目
プロフィールから取得できる項目(property)には以下があります。
- user_login
- user_pass
- user_nicename
- user_email
- user_url
- user_registered
- user_activation_key
- user_status
- display_name
- nickname
- first_name
- last_name
- description
- jabber
- aim
- yim
- user_level
- user_firstname
- user_lastname
- user_description
- rich_editing
- comment_shortcuts
- admin_color
- plugins_per_page
- plugins_last_view
- ID
サイドバーテキストウィジェットの設置
それではサイドバーにプロフィールを表示してみます。
サイドバーにテキストウィジェットを置いて内容に次のように書きます。
1 2 3 4 5 |
<div style="color:#ffffff;background-color:#000080;padding:15px;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;"> <div align="center">[userdata id=1 property="avatar"]</div> <div align="center"><h3><a href="https://couplog.hana87.club/author/kg">[userdata id=1 property="display_name"]</a></h3></div> <div>[userdata id=1 property="description"]</div> </div> |
cssを外出しにするとメンテが大変になるのでデザインはstyleで指定しました。
こうしておけばプロフィールを更新したときに自動的にサイドバーも更新されます。
参考サイト
WordPressのショートコードを自作してみる
WordPress 記事の投稿者情報を取得する方法まとめ
スポンサーサイト
アフィリエイトはエーハチネット

ドメイン取るならお名前.com
