サポート » 使い方全般 » 投稿者別に最新の記事を表示する方法

  • peco

    (@peco)


    本家のフォーラムを含めて情報が見つからなかったため、投稿いたします。
    ぜひ、お力をお貸しください。

    現在4人の投稿者(author)で運営しているサイトがあり、
    各投稿者の最新の記事をサイドバーに表示したいと考えています。

    記事はタイトルと日付のみ、表示件数は1~3件を予定しています。
    以下のような感じです。
    ———————-
    投稿者1
    最新の記事1  日付
    最新の記事2  日付
    最新の記事3  日付
    ———————-
    投稿者2

    author_id を指定すれば、個別に表示することができたのですが、
    全ての作者(今後も増える予定)の最新の記事を表示することは出来ませんでした。

    複雑な方法になってもかまいませんので、ぜひご教授ください。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • mizube

    (@mizube)

    author_id を指定すれば、個別に表示することができたのですが、

    とのことですので、必要な点だけ。

    登録されているユーザーの ID をすべて取得しつつ、権限が購読者、または投稿したことのないユーザーはスキップするような処理を行えばよいと思います。

    $authors = $wpdb->get_results("SELECT ID, display_name FROM $wpdb->users;");
    // $authors = $wpdb->get_results("SELECT ID, display_name FROM $wpdb->users WHERE user_login <> 'admin';"); // admin は隠した方が良いかも
    
    if ( $authors ) {
        // echo "<div>";
        foreach ( $authors as $author ) {
            $user_level = (int) get_usermeta( $author->ID, 'user_level' );
            $user_numposts = (int) get_usernumposts( $author->ID );
            if ( $user_level == 0 || $user_numposts == 0 ) continue;
    
            $r = new WP_Query( array( 'author' => $author->ID, 'showposts' => 3 ) );
            if ( $r->have_posts() ) {
                $user_name = wptexturize( $author->display_name );
                // echo "<h2>{$user_name}</h2>\n";
                // echo "<ul>\n";
                while ( $r->have_posts() ) {
                    $r->the_post();
                    $permalink = get_permalink( $post->ID );
                    $post_title = get_the_title( $post->ID );
                    $post_date = get_the_time( 'Y/m/d', $post->ID );
                    // echo get_archives_link( $permalink, $post_title, 'html', null, ' ' . $post_date );
                }
                // echo "</ul>\n";
            }
        }
        wp_reset_query();
        // echo "</div>\n";
    }
    トピック投稿者 peco

    (@peco)

    返信が遅れてしまい申し訳ございませんでした。

    上記の方法を利用して挑戦してみます。

    結果は後日ご報告いたします。

    mizubeさん、ご回答ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「投稿者別に最新の記事を表示する方法」には新たに返信することはできません。