WordPressテーマCocoon用のものばかり出てくるので、プロフィールウィジェットが用意されていないテーマで表示させるには、どうすればいいか纏めてみた。
目次
テキストウィジェットでPHPコードを動かす
function widget_text_exec_php( $widget_text ) {
if( strpos( $widget_text, '<' . '?' ) !== false ) {
ob_start();
eval( '?>' . $widget_text );
$widget_text = ob_get_contents();
ob_end_clean();
}
return $widget_text;
}
add_filter( 'widget_text', 'widget_text_exec_php', 99 );
functions.php上記をfunctions.php
に追加すると、テキストウィジェットでPHPコードが実行されるようになる。
簡単ですが、eval
を使用していてセキュリティ的に宜しくないのでショートコードを使用しましょう。
プロフィール用のショートコードを作成
テキストウィジェットでショートコードは使えるので、ショートコードを使って書いていきましょう。
上記の、PHP直書きだと自動的にコメントアウトされてしまって動かなくなるので…
セキュリティ的にもアレですし
functions.phpに記述していきます。
なので、カスタムテーマを用意しておいた方がテーマバージョンアップ時に消えずに済みます。
ニックネーム
IDが1のユーザーのニックネームを表示。
ユーザープロフィールの「ブログ上の表示名」に入力した値が出力されます。
function sc_profile_name() {
ob_start();
$userId = 1;
echo the_author_meta('display_name', $userId);
return ob_get_clean();
}
add_shortcode('profile_name', 'sc_profile_name');
functions.phpプロフィール情報
IDが1のユーザーのプロフィール情報を表示。
ユーザープロフィールの「プロフィール情報」に入力した値が出力されます。
function sc_profile_description() {
ob_start();
$userId = 1;
echo the_author_meta('description', $userId);
return ob_get_clean();
}
add_shortcode('profile_description', 'sc_profile_description');
functions.phpアバター
IDが1のユーザーのアバター画像を表示。
ユーザープロフィールの「プロフィール写真」の画像が出力されます。
function sc_profile_avatar() {
ob_start();
$userId = 1;
echo get_avatar($userId, 120);
return ob_get_clean();
}
add_shortcode('profile_avatar', 'sc_profile_avatar');
functions.phpIDが1のユーザーのTwitterアカウントを表示。
ユーザープロフィールの連絡先情報の「Twitter」に入力した値が出力されます。
function sc_profile_twitter() {
ob_start();
$userId = 1;
echo the_author_meta('twitter', $userId);
return ob_get_clean();
}
add_shortcode('profile_twitter', 'sc_profile_twitter');
functions.phpその他
このくらいあれば事足りるのではないかと思います。
その他プロフィール情報を取り出したい場合は関数リファレンス/get the author metaを参照してください。
サイドバーにプロフィールを作成する
サイドバーにテキストウィジェットを追加して、思うようにデザインしてください。
例えばこんな感じに書くと
<div style="text-align: center;">
</div>
<div style="text-align: center;">みもざ
<a class="twitter-follow-button" href="https://twitter.com/MimosaHrvsty?ref_src=twsrc%5Etfw" data-size="large" data-show-screen-name="false" data-lang="ja" data-show-count="false">Follow @MimosaHrvsty</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p style="padding: 0 1em;">FF14やったり他のゲームしたりプログラム書いたり
最近忘れっぽくなってきたので備忘録的な感じのブログになりつつある。</p>
HTMLこう表示されます。


ユーザーのプロフィール情報に書いたものが表示されます。
Twitterのフォローボタン
フォローボタンはTwitter Publishを使用しました。
コメントを残す