当社のようなマルチライターブログを運営している場合、各ライターの作品を効果的に表示することの重要性を理解しているはずです。
私たちが見つけた一つの方法は、各記事の最後に同じ著者の関連記事を表示することです。このアプローチは、読者が好きなものをさらに見つけるのに役立つだけでなく、各著者のサイトでの露出を増やすことにもつながります。
この記事では、WordPressで同じ著者の関連記事を表示する方法を説明します。

WordPressで著者別の関連記事を表示する理由
WordPress に関連投稿を追加することで、訪問者は新しいコンテンツを見つけ、エンゲージメントを維持し、ページビューを増やし、バウンス率を減らすことができます。
ただし、マルチオーサーのWordPressブログを実行している場合、訪問者は特定の著者の他の投稿を読みたいと思うかもしれません。同じ著者が書いた投稿を表示すると、訪問者をサイトに長く滞在させ、読者体験を向上させることができます。

それでは、WordPressで同じ著者の関連記事を表示する方法を見てみましょう。
WordPressで同じ著者の投稿を表示する(簡単な方法)
同じ著者による関連記事のリストを表示する最も簡単な方法は、WordPressサイトにカスタムコードを追加することです。この目的のためにプラグインを探しましたが、見つかったものは古すぎました。
ガイドでは、サイトのfunctions.phpファイルを編集してカスタムコードを追加するように指示されることがあります。しかし、この方法はお勧めしません。コードに小さな間違いやタイプミスがあるだけで、一般的なWordPressのエラーが発生したり、サイトが完全に壊れたりする可能性があります。
そこで登場するのがWPCodeです。

WPCodeは、PHP、CSS、HTMLなどのカスタムコードをWordPressサイトに安全に追加できる最高のコードスニペットプラグインです。カスタマイズを失うことなくWordPressテーマを更新することもできます。
同じ投稿者の関連記事を表示する以外にも、WPCodeを使用すると、カスタムコードを追加してランダムな投稿を表示したり、投稿ループから固定投稿を除外したりできます。
まず、無料のWPCodeプラグインをインストールして有効化する必要があります。詳細な手順については、WordPressプラグインのインストール方法に関する初心者向けガイドをご覧ください。
有効化したら、WordPress管理画面のサイドバーから コードスニペット » + スニペットを追加 に移動します。ここで、ウェブサイトに追加できる既製のすべてのスニペットが表示されます。
スニペットを作成するには、単に「カスタムコードを追加(新規スニペット)」にカーソルを合わせ、「+カスタムスニペットを追加」ボタンをクリックします。

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

次に、「カスタムスニペットの作成」ページに移動し、コードスニペットの名前を入力することから始めます。
名前は参照用なので、好きなものを自由に使用できます。

次に、次のスニペットを「コードプレビュー」ボックスに貼り付けることができます。
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ウェブサイト全体に表示されるようにします。

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

WordPressブログのいずれかの投稿にアクセスすると、新しい関連記事セクションが表示されます。
この記事が、WordPressで同じ著者の関連記事を簡単に表示する方法を学ぶのに役立ったことを願っています。また、WordPressでビュー数による人気投稿を表示する方法や、WordPressのベスト関連記事プラグインに関する専門家のおすすめもご覧ください。
この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterやFacebookでもフォローできます。
L Waterfield
何年も経ってからこの件を再度開いてしまい申し訳ありませんが、この関連記事コンテンツを「記事コンテンツの後」以外の場所に配置する方法を教えていただけますか?例えば、著者情報の後やコメントセクションの後などに表示したい場合です。ありがとうございます!
WPBeginnerサポート
表示される特定の場所をカスタマイズしたい場合は、「the_content」をコンテンツを追加したい場所に変更する必要があります。
管理者
azad
WP サイドバーで同じ著者の関連商品を表示する方法
WPBeginnerサポート
設定方法については、ご利用のECプラグインのサポートにお問い合わせください。
管理者
Alex
素晴らしい、記事をありがとうございます!
CPTから同じデータを取得することは可能ですか?
WPBeginnerサポート
そのためには、投稿タイプを含めるように引数の配列に追加する必要があります。8行目は次のようになります。
$authors_posts = get_posts( array( ‘post_type’ => ‘book’, ‘author’ => $authordata->ID, ‘post__not_in’ => array( $post->ID ), ‘posts_per_page’ => 5 ) );
bookをカスタム投稿タイプに置き換える
管理者
Alex
素晴らしい!ありがとうございます!
WPBeginnerサポート
You’re welcome
ライアン・キャスウェル
こんにちは、コードはうまく機能していますが、投稿のアイキャッチ画像サムネイルも含める方法はありますか?それは素晴らしいでしょう!
WPBeginnerサポート
Ryanさん、こんにちは。
はい、
the_post_thumbnail();を追加してアイキャッチ画像を表示できます。管理者
ライアン・キャスウェル
素晴らしい、ありがとうございます!PHP開発者ではないので申し訳ありません。コードのどこに表示されますか?どうもありがとうございます!
トリシャ・ウーリー
はい、うまくいきました。ありがとうございます!
そして、別の問題を見つけて修正しました…著者には投稿が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');1-click Use in WordPress
トリシャ・ウーリー
functions.php の上記のコードを開発サイトでテストしています。関連投稿が、お問い合わせページのようなページの下部にも表示されています。is_single を使用しているのに、これは起こらないはずです。なぜこれが起こっているのか、何かご存知ですか?
WPBeginnerサポート
こんにちは、トリシャさん。
ご報告ありがとうございます。コードに小さなエラーがあり、それが原因でした。エラーは修正されましたので、新しいコードスニペットをお試しいただけます。
管理者