参考:ウィジェットを用いる方法
前述では、ユーザーのプロフィールに独自の著者情報フィールドを追加し、そこから情報を出力していました。
ここでは、パターン機能を活用してプロフィールの説明文(ディスクリプション)を置き換えます。
実装手順
以下の手順で実装します。
- ラベル「プロフィール」ウィジェットの配置

[C] プロフィール 「 プロフィール」ウィジェットを「投稿関連記事上」に配置します。
- ラベルパターンを作成
パターンに本文下に表示する著者情報を作成・登録します。
- ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
// ウィジェットの出力パラメータを変更 add_filter('dynamic_sidebar_params', function ($params) { $GLOBALS['current_widget_id'] = $params[0]['widget_id']; $GLOBALS['current_sidebar_id'] = $params[0]['id']; return $params; }); // 著者ボックスの説明文を変更 add_filter('the_author_box_description', function ($description, $author_id) { $pattern_id = 12345; // パターンID if ( !empty($GLOBALS['current_sidebar_id']) && $GLOBALS['current_sidebar_id'] === 'above-single-related-entries' && !empty($GLOBALS['current_widget_id']) && strpos($GLOBALS['current_widget_id'], 'author_box') === 0 ) { $output = do_shortcode('[pattern id=' . intval($pattern_id) . ']'); unset($GLOBALS['current_widget_id']); unset($GLOBALS['current_sidebar_id']); return $output; } return $description; }, 10, 2);
参考:ショートコードを用いる方法
プロフィール情報をショートコードで表示している場合、ショートコードのパラメータでパターンIDを指定できます。
使用方法
以下にショートコードを示します。
[author_box pattern_id="12345"]
実装手順
以下のコードをfunctions.phpに追加します。
// ショートコード実行前に変更
add_filter('pre_do_shortcode_tag', function ($return, $tag, $attr) {
if ($tag === 'author_box' && isset($attr['pattern_id'])) {
$GLOBALS['author_box_pattern_id'] = absint($attr['pattern_id']);
}
return $return;
}, 10, 3);
// 著者ボックスの説明文を変更
add_filter('the_author_box_description', function ($description, $author_id) {
if (!empty($GLOBALS['author_box_pattern_id'])) {
$pattern_id = $GLOBALS['author_box_pattern_id'];
unset($GLOBALS['author_box_pattern_id']);
return do_shortcode('[pattern id="' . $pattern_id . '"]');
}
return $description;
}, 10, 2);
さいごに
今回紹介した方法を使えば、WELLのように投稿者情報をプロフィールに追加し、本文下に表示することができます。
「プロフィール」ウィジェットと同じ形式で表示されるため、サイトの統一感も損なわず、著者情報をわかりやすく伝えることが可能です。

