web-dev-qa-db-ja.com

ユーザーの役割に基づいて異なるバッジを表示する

問題

著者ページがあり、著者と購読者に別のバッジを表示する必要があります。サイト上の作者は購読者とは異なる特定の能力を持っています、そして私は彼らの役割に基づいて異なるバッジを表示したいと思います。

そのため、誰かが管理者、訪問者のどちらかのサイトにアクセスすると、自分の役割に基づいて訪問者のページにバッジが表示されます。ロールが「作成者」で、ユーザーのロールが「購読者」の場合、バッジは赤色です。それは可能ですか、そしてどうやってそれを作るのですか?

このコードはうまくいかない:(

私はこの論理を使おうとしていましたが、ページを所有している作家の年齢ではなく作者の年齢を誰が見ているかに基づくバッジを示しています。助けてください :)

 <?php if( is_author_of_current_page() &&  current_user_can('Author') ) { ?>

  green badge

 <?php } elseif( is_author_of_current_page() &&  current_user_can('Subscriber') ) { ?>

  red badge

 <?php } ?>
1
jimilesku

現在の著者ページのデータを取得するには、 get_queried_object を使用できます。

<?php

$author = get_queried_object();

// uncomment next line to see all author data
// print_r( $author );

if( in_array( 'author', $author->roles ) ) :

    echo "author";

elseif( in_array( 'subscriber', $author->roles ) ) :

    echo "subscriber";

endif;
2
Milo