category

category

2024.10.28

2024.10.28

73

【WordPress】投稿があるユーザー(投稿者)のみの一覧をリンク付きで表示する

記事を書いているユーザー(投稿者)のみリンク付き一覧の表示方法です。(記事を投稿していないユーザーは対象外

表示サンプル

※イメージです。リンク先は、投稿者の記事一覧ページです。

※どのページでもどの場所でも表示できます。

<?php
/*ユーザー一覧*/
global $wpdb;
$table_prefix = $wpdb->prefix;
$tablename = $table_prefix . 'posts';
$sql = "SELECT DISTINCT post_author FROM {$tablename} WHERE post_status = 'publish' AND post_type = 'post'";
$authors = $wpdb->get_results( $wpdb->prepare( $sql ) );
if($authors){    
    echo '<div class="side_menu">';
    echo '<p class="title">ライター一覧</p>';
    echo '<ul class="side_ul side_ul3">';
    foreach($authors as $author){
        $author_id = $author->post_author;
        $author_url = get_author_posts_url( $author_id );
        $author_info = get_userdata($author_id); ?>
        <li><a href="<?php echo $author_url; ?>"><?php echo $author_info->display_name; ?></a></li>
    <?php }
    echo '</ul>';
    echo '</div>';
}
?>
コードの説明

6行目

データベースに問い合わせするためのSQLです。

「post_author」には、投稿者のIDが格納されています。

「post_status = 'publish'」は公開済

「post_type = 'post'」は、投稿タイプです。ここを変更するとカスタム投稿など別の投稿タイプに変更できます。

「DISTINCT」は重複をまとめています。

要するに、 'post'タイプで公開されている記事の投稿者IDを問い合わせしています。

16行目

「$author_info->display_name」は、「ブログ上の表示名」です。

652

コメント

コメントを残す

ニックネームは公開されます

CAPTCHA


閉じる