WordPressでユーザーのプロフィール情報の改行を有効にする方法



WordPressの管理画面で登録したユーザーのプロフィール情報(自己紹介文)は、投稿ページでの投稿者の紹介であったりプロフィール紹介のページであったり、または企業やユニットであれば各メンバーを紹介する際に活用していくこともあるでしょう。

プロフィール情報は、the_author_meta関数を使って情報を取得して表示していきますが、管理画面上でテキストエリアに改行を含めて入力したテキストも、改行が反映されずに表示されます。

Webの文章は、改行なしでのひと続きの文章の方が内容が理解しやすいこともあれば、話題を転換する際には改行があった方が話の流れがつかみやすかったりするので、自由に改行を入れることができた方が便利です。

ここでは、WordPressでユーザーのプロフィール情報の改行を有効にする方法についてご紹介します。

はじめに、ユーザーのプロフィール情報の設定から確認しておきましょう。
WordPressの管理画面にて、ユーザーのプロフィールページの「プロフィール情報」の項目に、改行を含めて自己紹介文を入力しておきます。

WordPressユーザーのプロフィール情報に改行を含むテキストを入力する



ユーザーのプロフィール情報を表示したい部分のファイル(single.phpやパーツ化しているcontent-single.phpなど)に、WordPressの関数を使って出力します。

改行なしと改行ありでHTML構造が変わってきます。
そのあたりも含め、違いを比較してご紹介します。

通常の改行なし表示


通常の改行なしでの表示では、the_author_meta関数を使っていきます。
the_author_meta関数では、ユーザーが持っている情報を取得することができます。

構文

the_author_meta( string $field, int|false $user_id );


引数にはデータのフィールド名を指定します。
プロフィール情報のフィールド名は「description」になります。
引数を2つ指定する場合は、第1引数にフィールド名、第2引数にユーザーIDを指定します。
固定ページなどで複数人のユーザーの情報を必要とする場合は、ユーザーIDを指定して出力していくことになるでしょう。

// フィールド名のみ
<?php the_author_meta('description'); ?>

// ユーザーIDも指定する場合
<?php the_author_meta('description', 'ユーザーID'); ?>


投稿のシングルページやユーザー情報を表示するauthor.phpでは、ユーザーIDを指定する必要はありません。

the_author_meta関数では情報をそのまま出力しますので、以下のようにpタグの要素として表示するといいでしょう。
(サンプルでは装飾しやすいよう、CSSクラス「author-description」を付与しています)

<p class="author-description"><?php the_author_meta('description'); ?></p>

// ユーザーIDが「3」のプロフィール情報を表示する場合
<p class="author-description"><?php the_author_meta('description', 3); ?></p>


the_author_meta関数での出力では、管理画面上で改行して登録しても表示上は改行されません。

the_author_meta関数ではプロフィール情報の改行は反映されない



文章の内容によっては自由に改行を入れたいところです。

続いては、管理画面で入力した文章から改行を反映させて表示する方法について見ていきます。

改行を反映させて表示する


WordPressのwpautop関数を使うことで、プロフィール情報で入力した文章を、改行を反映させて表示することができます。

以下、wpautop関数の構文になります。

構文

wpautop( string $text, bool $br );


第1引数の文字列に対して、第2引数が「true」で改行あり、「0」または「false」で改行なしで処理されます。
第2引数を指定しなければデフォルトでtrueの改行ありとなります。

wpautop('$text', true) //改行あり(デフォルト)
wpautop('$text', false) //改行なし
wpautop('$text', 0) //改行なし


ユーザーのプロフィール情報の取得と表示について見てみましょう。
プロフィール情報のテキストは、そのまま表示するのではなく引数として取得しますので、get_the_author_meta関数を使います。

wpautop関数の第1引数として、get_the_author_meta関数で取得する文字列を指定します。
get_the_author_meta関数の引数にはデータのフィールド名を指定します。
こちらも同じく、プロフィール情報のフィールド名は「description」になります。
引数を2つ指定する場合は、第1引数にフィールド名、第2引数にユーザーIDを指定します。

// フィールド名のみ
<?php echo wpautop(get_the_author_meta('description')); ?>

// ユーザーIDも指定する場合
<?php echo wpautop(get_the_author_meta('description', 'ユーザーID')); ?>


wpautop関数ではHTMLのpタグで要素を構成しますので、divタグ等で覆っておくとスタイルが調整しやすくなるでしょう。
(サンプルでは装飾しやすいよう、CSSクラス「author-description」を付与しています)
echoを使って文字列を出力・表示します。

<div class="author-description"><?php echo wpautop(get_the_author_meta('description')); ?></div>

// ユーザーIDが「3」のプロフィール情報を表示する場合
<div class="author-description"><?php echo wpautop(get_the_author_meta('description', 3)); ?></div>



実行結果を見てみますと、管理画面で入力したように改行が反映されているのが確認できます。
wpautop関数ではpタグで要素が構成され、文字列の改行を認識してbrタグが挿入されます。

wpautop関数を使ってプロフィール情報の改行を反映させる



ソースコードを確認していただくとわかると思いますが、通常のthe_author_meta関数の出力と改行を反映させることができるwpautop関数を使った出力では、少しHTML構造が変わってきます。
CSSでの装飾に関係してきますので、HTML構造が変わってくることは把握しておいた方がいいでしょう。



WordPressでは管理画面の情報を出力する際に、テキストエリアで構築された部分では改行が反映されない仕様になっていることもあるので、必要があればwpautop関数を使って改行に対応してみてください。