WordPressで著者が同じ関連記事を表示する方法

当社のようなマルチライターブログを運営している場合、各ライターの作品を効果的に表示することの重要性を理解しているはずです。

私たちが見つけた一つの方法は、各記事の最後に同じ著者の関連記事を表示することです。このアプローチは、読者が好きなものをさらに見つけるのに役立つだけでなく、各著者のサイトでの露出を増やすことにもつながります。

この記事では、WordPressで同じ著者の関連記事を表示する方法を説明します。

WordPressで同じ著者の関連記事を表示する

WordPressで著者別の関連記事を表示する理由

WordPress に関連投稿を追加することで、訪問者は新しいコンテンツを見つけ、エンゲージメントを維持し、ページビューを増やし、バウンス率を減らすことができます。

ただし、マルチオーサーのWordPressブログを実行している場合、訪問者は特定の著者の他の投稿を読みたいと思うかもしれません。同じ著者が書いた投稿を表示すると、訪問者をサイトに長く滞在させ、読者体験を向上させることができます。

WordPressで著者の関連記事を手動で表示する

それでは、WordPressで同じ著者の関連記事を表示する方法を見てみましょう。

WordPressで同じ著者の投稿を表示する(簡単な方法)

同じ著者による関連記事のリストを表示する最も簡単な方法は、WordPressサイトにカスタムコードを追加することです。この目的のためにプラグインを探しましたが、見つかったものは古すぎました。

ガイドでは、サイトのfunctions.phpファイルを編集してカスタムコードを追加するように指示されることがあります。しかし、この方法はお勧めしません。コードに小さな間違いやタイプミスがあるだけで、一般的なWordPressのエラーが発生したり、サイトが完全に壊れたりする可能性があります。

そこで登場するのがWPCodeです。

WPCodeのホームページ

WPCodeは、PHP、CSS、HTMLなどのカスタムコードをWordPressサイトに安全に追加できる最高のコードスニペットプラグインです。カスタマイズを失うことなくWordPressテーマを更新することもできます。

同じ投稿者の関連記事を表示する以外にも、WPCodeを使用すると、カスタムコードを追加してランダムな投稿を表示したり、投稿ループから固定投稿を除外したりできます。

まず、無料のWPCodeプラグインをインストールして有効化する必要があります。詳細な手順については、WordPressプラグインのインストール方法に関する初心者向けガイドをご覧ください。

有効化したら、WordPress管理画面のサイドバーから コードスニペット » + スニペットを追加 に移動します。ここで、ウェブサイトに追加できる既製のすべてのスニペットが表示されます。

スニペットを作成するには、単に「カスタムコードを追加(新規スニペット)」にカーソルを合わせ、「+カスタムスニペットを追加」ボタンをクリックします。

WPCodeでカスタムコードを追加する

次に、画面に表示されるオプションのリストからコードタイプを選択する必要があります。このチュートリアルでは、「PHPスニペット」を選択してください。

コードの種類としてPHPスニペットを選択

次に、「カスタムスニペットの作成」ページに移動し、コードスニペットの名前を入力することから始めます。

名前は参照用なので、好きなものを自由に使用できます。

WPCodeを使用して同じ著者の関連記事を表示する方法

次に、次のスニペットを「コードプレビュー」ボックスに貼り付けることができます。

function wpb_related_author_posts($content) {
    if (is_single()) {
        global $authordata, $post;
        
        // Fetch the author's display name
        $author_name = get_the_author_meta('display_name', $authordata->ID);
        
        // Insert the author's name into the string
        $content .= '<h4>Similar Posts by ' . $author_name . ':</h4> ';
      
        $authors_posts = get_posts(array(
            'author' => $authordata->ID,
            'post__not_in' => array($post->ID),
            'posts_per_page' => 5
        ));
      
        $content .= '<ul>';
        foreach ($authors_posts as $authors_post) {
            $content .= '<li><a href="' . get_permalink($authors_post->ID) . '">' . apply_filters('the_title', $authors_post->post_title, $authors_post->ID) . '</a></li>';
        }
        $content .= '</ul>';
      
        return $content;
    } else {
        return $content;
    }
}

add_filter('the_content', 'wpb_related_author_posts');

このコードは、ページが単一の投稿であるかどうかを確認し、そうであれば、著者の情報を取得します。

その後、「(著者名)による類似投稿」という見出しが表示され、投稿コンテンツの下に同じ著者の類似投稿が最大5件(現在の投稿を除く)表示されます。この関数は、コードをシングル投稿テンプレートで実行するように WordPress に指示します。

その後、「挿入」セクションまでスクロールダウンします。

まだ選択されていない場合は、「自動挿入」を選択します。次に、ドロップダウンメニューを開き、「すべてで実行」を選択して、関連記事がWordPressウェブサイト全体に表示されるようにします。

WordPress サイト全体に関連投稿を追加する

その後、画面の上部までスクロールし、「非アクティブ」トグルをクリックして「アクティブ」に変更します。

最後に、「スニペットを保存」をクリックしてPHPスニペットを公開します。

WPCodeでスニペットを保存

WordPressブログのいずれかの投稿にアクセスすると、新しい関連記事セクションが表示されます。

この記事が、WordPressで同じ著者の関連記事を簡単に表示する方法を学ぶのに役立ったことを願っています。また、WordPressでビュー数による人気投稿を表示する方法や、WordPressのベスト関連記事プラグインに関する専門家のおすすめもご覧ください。

この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterFacebookでもフォローできます。

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

14 CommentsLeave a Reply

  1. 何年も経ってからこの件を再度開いてしまい申し訳ありませんが、この関連記事コンテンツを「記事コンテンツの後」以外の場所に配置する方法を教えていただけますか?例えば、著者情報の後やコメントセクションの後などに表示したい場合です。ありがとうございます!

    • 表示される特定の場所をカスタマイズしたい場合は、「the_content」をコンテンツを追加したい場所に変更する必要があります。

      管理者

  2. 素晴らしい、記事をありがとうございます!
    CPTから同じデータを取得することは可能ですか?

    • そのためには、投稿タイプを含めるように引数の配列に追加する必要があります。8行目は次のようになります。

      $authors_posts = get_posts( array( ‘post_type’ => ‘book’, ‘author’ => $authordata->ID, ‘post__not_in’ => array( $post->ID ), ‘posts_per_page’ => 5 ) );

      bookをカスタム投稿タイプに置き換える

      管理者

  3. こんにちは、コードはうまく機能していますが、投稿のアイキャッチ画像サムネイルも含める方法はありますか?それは素晴らしいでしょう!

  4. はい、うまくいきました。ありがとうございます!

    そして、別の問題を見つけて修正しました…著者には投稿が1つしかない場合、関連記事エリアは表示されますが、情報はありません。これを解決するために、次のことを行いました。また、エリアをスタイル設定するために、コンテンツの周りにdivを追加しました。

    // Related Author Posts
    
    function wpb_related_author_posts($content) {
    
        global $authordata, $post;
    
        $authors_posts = get_posts( array( 'author' => $authordata->ID, 'post__not_in' => array( $post->ID ), 'posts_per_page' => 5 ) );
    
    if ( is_single() && (count($authors_posts) > 1 ) ) {
    
        $content .= '<div class="similar_posts"><h3>Similar Posts by The Author:</h3> ';
    
        $content .= '<ul>';
        foreach ( $authors_posts as $authors_post ) {
            $content .= '<li><a href="' . get_permalink( $authors_post->ID ) . '">' . apply_filters( 'the_title', $authors_post->post_title, $authors_post->ID ) . '</a></li>';
        }
        $content .= '</ul></div>';
    
        return $content;
        }
        else {
        return $content;
        }
    }
    
    add_filter('the_content','wpb_related_author_posts');
    
  5. functions.php の上記のコードを開発サイトでテストしています。関連投稿が、お問い合わせページのようなページの下部にも表示されています。is_single を使用しているのに、これは起こらないはずです。なぜこれが起こっているのか、何かご存知ですか?

    • こんにちは、トリシャさん。

      ご報告ありがとうございます。コードに小さなエラーがあり、それが原因でした。エラーは修正されましたので、新しいコードスニペットをお試しいただけます。

      管理者

返信する

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。