キュレーションサイトなど最近では複数のライターによって運営される情報サイトをよく見ることができます。そのようなサイトにおいて、ユーザーの一覧を表示する、さらには1ページ内にユーザー事に最新記事を表示するといったページがほしいときがあります。
今回は、WordPressでユーザーの一覧、ユーザー別に最新記事を表示する方法をご紹介します。
「get_users」関数を使用したユーザー情報の取得
ユーザー情報を取得るときは「get_users」関数を使います。「get_users」関数では権限の指定、ソートの設定、特定のIDのユーザーを除外するといった条件を設定することができ、表示するときの順番を制御することができます。
// 例.投稿者(author)のみをIDの降順(DESC)ですべての情報を取得する $args = array( 'role' => 'author', 'orderby' => 'ID', 'order' => 'DESC', 'fields' => 'all', ); $users = get_users( $args );
単純にIDや表示名でのソートでは目的とする順番で並びを変えることができない場合は、ユーザー情報に「並び順」などカスタム項目を追加して並びを調整することも可能です。
ユーザー情報のカスタマイズする場合は、「functions.php」必要なコードを追記するか、「User Meta Manager」などのプラグインを使い編集することができます。
取得したユーザー情報を表示する
「get_users」関数で取得した情報を「foreach 」を使い表示します。
// 表示名を出力する
foreach ( $users as $user ) {
	echo '<p>' . esc_html( $user->user_nicename ) . '</p>';
}
ユーザー事に記事を表示する
ユーザー情報の表示に合わせて投稿の記事を取得する処理を追加します。
// 表示名と投稿記事を取得して表示する
foreach ( $users as $user ) {
	echo '<p>' . esc_html( $user->user_nicename ) . '</p>';
	// 投稿記事の取得
	$args = array(
	  'post_type'       => 'post',
	  'author'	    => $user->ID,
	  'numberposts'     => 5,
	);
	
	$myposts = get_posts( $args );
	
	foreach( $myposts as $post ) :  setup_postdata($post);
        // 記事表示の処理
        endforeach; wp_reset_postdata(); 
}
    
                  
                    



