is_multi_authorは投稿者ではなく「投稿したユーザー」が複数いるか判定する

WordPressで作成中のブログを複数のユーザーで管理するときは投稿者の画像(アバター画像)を含めて投稿者の情報を表示したいこともあります。

投稿者情報の表示例(Twenty Twelve)

投稿者情報の表示例(Twenty Twelve)

テーマによっては個別投稿の下にアバター画像を表示してくれるテーマもありますが、「投稿者が複数いる場合はアバター画像を表示する」という条件が付いている場合があります。

この「複数の投稿者がいる」の判定にはis_multi_authorが使われるのが定番ですが、この関数は複数のユーザーが登録されているかどうかではなく実際に記事を書いたユーザーが複数いるかどうかを判定しています。

たとえば、Twenty Twelveというテーマでは記事の下にアバター画像を表示しますが、次の条件を満たす必要があります。

if ( is_singular() && get_the_author_meta( 'description' ) && is_multi_author()

このif文には3つの条件が書いてあります。

  1. is_singular --- 個別投稿の場合
  2. get_the_author_meta( 'description' ) --- ユーザーの「プロフィール情報」が入力されている
  3. is_multi_author --- 複数の投稿者が存在する

最初の2つは読んだままの解釈ですが、3番目は誤解するかもしれません。登録されたユーザーが2人以上いるかではなく、実際に投稿したユーザーが2人以上いるかです。

これから記事を書くユーザーを何人も登録しておいても、実際に記事を書いているのが1人だけの場合はアバター画像は表示されません。また、これらの条件はテーマによって異なります。ご注意ください。

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク