プラグインではなくコードを使用して、WordPressウェブサイトに関連記事を表示したいですか?
WPBeginner では、読者とのエンゲージメントを維持し、コンテンツの探索を促すことの重要性をしばしば強調しています。数多くの成功した WordPress サイトで活用されている効果的な戦略の 1 つは、関連記事を表示することです。
ブログ訪問者が興味のある記事を読み終えた後、関連記事のリストを提供することで、エンゲージメントを維持し、新しいコンテンツを見つけるのに役立ちます。
この記事では、プラグイン不要のコードを使用してWordPressで関連記事を表示する方法を説明します。

WordPressで関連記事を表示する理由
WordPressブログが成長すると、ユーザーが同じトピックの他の投稿を見つけるのが難しくなることがあります。
各ブログ投稿の最後に関連記事のリストを表示することは、訪問者をウェブサイトに留め、ページビューを増やすための素晴らしい方法です。また、最も重要なページの可視性を向上させ、最高のコンテンツを簡単に見つけられる場所に表示するのにも役立ちます。
コードに慣れていない場合は、コードなしで関連記事を表示できる多くのWordPress関連記事プラグインのいずれかを選択する方が簡単でしょう。
しかし、プラグインを使用せずに関連記事を表示できるかどうか疑問に思ったことがあるなら、コードのみを使用してサムネイル付きの関連記事を生成するために使用できる2つの異なるアルゴリズムを共有します。
📍 注意: 各関連記事にサムネイルを表示したい場合は、まずそれらの投稿にアイキャッチ画像を追加してください。
方法1:WordPressでタグ別に関連記事を表示する方法
関連記事を見つける効率的な方法の1つは、同じタグを共有する他の投稿を探すことです。タグは、投稿に含まれる特定の詳細に焦点を当てるためによく使用されます。
これを踏まえて、互いに関連付けたい投稿に一般的なタグを追加することを検討してください。WordPressエディタの「タグ」ボックスに入力できます。

投稿にタグを追加した後、次に `single.php` テンプレートに次のコードスニペットを追加します。
サイトにコードを追加する方法がわからない場合は、ウェブ上のスニペットをWordPressに貼り付ける方法に関するガイドを参照してください。
$orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=>5, // Number of related posts that will be shown.
'ignore_sticky_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
echo '<div id="relatedposts"><h3>Related Posts</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post(); ?>
<li><div class="relatedthumb"><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_post_thumbnail(); ?--></a></div>
<div class="relatedcontent">
<h3><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_title(); ?--></a></h3>
<!--?php the_time('M j, Y') ?-->
</div>
</li>
<!--?php }
echo '</ul--></ul></div>';
}
}
$post = $orig_post;
wp_reset_query();
このコードは、ページに関連付けられたタグを検索し、類似のタグを持つページを取得するためにデータベースクエリを実行します。
コードはどこに配置する必要がありますか?それはあなたのテーマによりますが、ほとんどの場合、コードをテーマのsingle.phpテンプレートのメイン投稿の後、コメントセクションの直前に貼り付けることができます。
デモサイトで使用しているTwenty Twenty-Oneテーマを使用している場合、コードを貼り付けるのに適した場所は、template-parts/content/content-single.php ファイルのヘッダーの後、<?php the_content(); の直後です。

これにより、WordPressの投稿に自動的に関連コンテンツが表示されます。
カスタムCSSを追加することで、関連投稿のスタイルと外観をテーマに合わせて変更する必要があります。

ヒント:テーマファイルを編集するとウェブサイトが破損する可能性があるため、WPCodeのようなコードスニペットプラグインの使用をお勧めします。
WPCodeを使用すると、WordPressにカスタムコードを安全かつ簡単に追加できます。さらに、「挿入」オプションが付属しており、投稿の後など、WordPressサイトの特定の場所にスニペットを自動的に挿入して実行できます。

詳細については、WordPressにカスタムコードを追加する方法に関するガイドをご覧ください。また、プラグインの詳細については、詳細なWPCodeレビューもご覧ください。
方法2:カテゴリ別に関連記事を表示する方法
関連記事を表示するもう1つの方法は、同じカテゴリの投稿をリストすることです。この方法の利点は、関連記事のリストが空白になることがほとんどないことです。
方法1と同様に、コードスニペットをテーマのsingle.phpテンプレートまたはWPCodeのようなコードスニペットプラグインに追加する必要があります。詳細については、方法1およびWordPressにカスタムコードを追加する方法に関するガイドを参照してください。
$orig_post = $post;
global $post;
$categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=> 2, // Number of related posts that will be shown.
'ignore_sticky_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
echo '<div id="related_posts"><h3>Related Posts</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post();?>
<li><div class="relatedthumb"><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_post_thumbnail(); ?--></a></div>
<div class="relatedcontent">
<h3><a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><!--?php the_title(); ?--></a></h3>
<!--?php the_time('M j, Y') ?-->
</div>
</li>
<!--?php }
echo '</ul--></ul></div>';
}
}
$post = $orig_post;
wp_reset_query();
これから各投稿の下部に関連記事が表示されます。
関連ページのデザインと外観を変更したい場合は、テーマに合わせてカスタムCSSを追加する必要があります。
WordPressでの関連記事に関するエキスパートガイド
WordPressで関連記事を表示する方法についてもっと知りたいですか?関連記事に関するこれらの役立つチュートリアルをご覧ください:
- WordPressで関連記事を表示する方法(ステップバイステップ)
- WordPressで著者が同じ関連記事を表示する方法
- WordPressで最近の投稿を表示する方法
- WordPressで特定のカテゴリの最新投稿を表示する方法
- WordPressブログ投稿にインライン関連投稿を追加する方法
- WordPressでランダムな投稿を表示する方法
- WordPressで関連記事を表示する方法
このチュートリアルがお役に立ち、プラグインなしでWordPressに関連投稿をサムネイル付きで表示する方法を学べたことを願っています。また、WordPressサイトへの訪問者を追跡する方法を学ぶか、ウェブサイトを高速化するための24のヒントリストをご覧ください。
この記事が気に入った場合は、WordPressのビデオチュートリアルのために、YouTubeチャンネルを購読してください。また、TwitterやFacebookでも私たちを見つけることができます。


imranhunzai
絶対に素晴らしいです!そして、はい、役に立ちます。
8MEDIA
素晴らしい投稿です。ありがとうございます
shaileshtr
WordPressブログにプラグインなしで関連記事を表示するのは良いことです。帯域幅と読み込み時間を短縮できます。http://shareitto.com ご提案ありがとうございます。
zioneyemedia
これについて質問があります。子カテゴリと親カテゴリから投稿を取得するコードに苦労しています。何かアドバイスはありますか?
AmandaLong
これは素晴らしいです…ありがとう!
dustinporchia
カテゴリ別の関連記事を使用しようとしていますが、コードはメインループのコメントの前に来る必要があると記載されていました。私のコードでは、関連記事をループ内のコメントの後に表示したいです。これを実行すると、Disqusコメントプラグインの読み込みに時間がかかることに気づきました。これはコメントのエラーによるものですか、それとも正常ですか?
dustinporchia
もう結構です…とにかくコメントシステムに求めているものはこちらの方が近いので、Livefyreに切り替えました…ありがとうございます!
subzerokh
お願いします
このスクリプトをカスタマイズして、関連記事を横並びで表示できるように手伝ってくれる人はいますか?
左から右へ..
現在、縦方向に上から下へ表示するのではなく…
zioneyemedia
こんにちは、
私がやった方法は、コードを独自のHTMLとCSSに置き換えたことです。コードは各投稿のリストを作成し、通常は縦方向に表示されます。
——————
——————
開始タグを
に置き換え、終了タグを
に置き換えました。これは私のHTMLタグです。次に、ウェブサイトの特定のdivクラスのニーズに合わせてCSSを作成します。たとえば、サンプルpleftクラスは次のようになります。.pleft {float:left; padding:2px; margin:10px; width:278px; height:190px;}
投稿を横方向に移動させるためにCSSでfloat:セレクタを使用し、各投稿の間隔を空けるためにマージンとパディングを使用しています。追加の例として、特定の幅と高さを追加しました。
お役に立てば幸いです。
Simos
@zioneyemedia ありがとうございます!
gcog
関連タグは確かにありますが、コードを追加しても何も表示されません。また、カスタム投稿タイプに制限するためにコードを追加するとエラーが発生します。投稿タイプを特定の投稿タイプに変更しました。
subzerokh
@wpbeginner こんにちは
早速のご回答ありがとうございます…
でも、言われていることは全くの初心者なんです…
例を少し教えていただけますか?
あなた自身のブログのように横並びにするには?
メールで連絡できます: khiloc at gmail dot com
wpbeginner
@subzerokh スタイリングを編集する必要があります。それほど難しくありません。各投稿をdivで囲みます。そのdivの幅を指定し、float leftプロパティを設定します。マージンなどを調整すれば完了です。
subzerokh
皆さん、こんにちは!この素晴らしいスクリプトをありがとうございます!
やりたかったことを正確にやってくれた唯一のものです!!!
しかし、関連記事が縦に(上から下へ)表示されるだけです。
左から右(水平方向)に表示したいです
どうすればできますか?
ConnectIndia
エラー 重大なエラー: 未定義の関数 the_post_thumbnail() が /home/connec92/public_html/wp-content/themes/weekly/single.php の 59 行目で呼び出されました。どなたか助けていただけますか。ウェブサイト http://www.connectindia.co.in
xavpro
こんにちは、
素晴らしい投稿です!助けていただけますか:
定義されていない場合は、自動サムネイルが表示されます。
if ($thumb_array[‘thumb’] == ”) $thumb_array[‘thumb’] = ‘リンクをデフォルトのサムネイル画像に設定’;return $thumb_array;
さて、私の質問は、各カテゴリのサムネイルを定義する方法です。これは、投稿で定義されていない場合に使用されます。
dehahs
うまく機能しました、共有してくれてありがとう!
AdnanAsif
こんにちは
素晴らしい投稿をありがとうございます..
しかし、カテゴリ別の投稿を取得する方法はありますか?ただし、ulとliではなく、サムネイルでもない方法で。
関連記事に、ホームページに表示されるような、続きを読むリンク付きの完全な投稿が表示されるということです。
ありがとう
返信をお待ちしています..
AdnanAsif
こんにちは
素晴らしい投稿をありがとうございます..
しかし、カテゴリ別の投稿を取得する方法はありますか?ただし、ulとliではなく、サムネイルでもない方法で。
関連記事に、ホームページに表示されるような、続きを読むリンク付きの完全な投稿が表示されるということです。
ありがとう
返信をお待ちしています..
ibadullah25
これにCSSを適用できますか?
編集スタッフ
使用したCSSはクライアントのサイト用でした。表示方法については、独自のCSSを追加できます。
管理者
titusmagnet
ありがとう..このようなコードを探していました
jaffa
これは素晴らしいです、まさに私が探していたものです。しかし、上記の2つをどのように組み合わせることができるか、そしてタグがない場合は同じカテゴリの投稿を表示できるか疑問に思いますか?
これを理解しようとしていますが、まだあまり進んでいません
nikbanks
コードをありがとうございます。動作しましたが、どのようにスタイルを設定すればよいですか?あなたのサイトのように、4つのストーリーを横並びにしたいです。私のサイトでは、あなたのサイトのようにリストされるのではなく、縦に1つずつリストされています。
編集スタッフ
それはCSSです。関連記事を表示するためにこのコードは使用していません。次に、サイドバーの注目の記事について話していると思います。サイトでそれに関する別の投稿を書いています。
管理者
Coolguy
関連投稿で、フィーチャー画像や投稿サムネイルを使わずにサムネイルを表示する方法はありますか?
つまり、投稿内で使用されている任意の画像を使用するということです…
編集スタッフ
はい、他の開発者が共有したフォールバック技術を利用して、投稿の最初の画像を取得することができます。しかし、WordPressの投稿サムネイルを使用することをお勧めします…
管理者
Hetal
この記事をありがとうございます。手動で入力せずに投稿を自動タグ付けする方法があるかどうか疑問に思っていました。
編集スタッフ
いいえ、各投稿を手動でタグ付けする必要があります。
管理者
Sisko
素晴らしい!
サムネイルなしでカテゴリ別の関連記事を表示したい場合はどうすればよいですか?
ありがとうございます
編集スタッフ
上記のコードからサムネイルコードを削除してください
管理者
テリー
このチュートリアルを投稿していただきありがとうございます。大変参考になりました。
Adrian
こんにちは。WordPressのウェブサイトをゼロから構築しており、このコードはWP 3.1で完璧に動作します。あとはCSSのスタイリングと、投稿用のサムネイルを用意するだけです。コードのご協力に感謝します。
新車発売
ありがとう、このハックを探していました。見つけました!
パトリシア
こんにちは、カテゴリを除外する方法はありますか? 2つのメインカテゴリがあり、すべてのカテゴリがそこに割り当てられています。メインカテゴリにはサブカテゴリがあり、サブカテゴリの関連投稿のみを表示したいのですが。
メインカテゴリのIDを除外して、これは可能ですか?
アドバイスありがとうございます!
ところで…コードは素晴らしいですし、うまく機能しますよ!!!
編集スタッフ
カテゴリは << に含まれないものを使用できるはずです
管理者
ウスマン
サムネイル付きの関連記事プラグインを探していましたが、あなたが貼り付けたコードが私の問題を解決しました。
ジョン
ただ一つの質問ですが、同じ投稿タイプからのみタグを取得する方法はありますか?例えば「post_type=videos」のようなものを使用しますか?
ジョン
ところで、これも解決しました。
配列に追加するだけです。
$args=array( ‘category__in’ => $category_ids, ‘post__not_in’ => array($post->ID), ‘posts_per_page’=> 2, // 表示される関連記事の数。 ‘caller_get_posts’=>1, ‘post_type’=>’videos’ );
marion
こんにちは、
このチュートリアルをありがとうございます。ただ、関連製品をランダムに表示する方法はありますか?同じカテゴリの異なる製品を確認しましたが、同じ関連製品が表示されました。
ありがとう
編集スタッフ
はい、Query_Postパラメータを使用して順序を指定し、ランダム化できます。
管理者
クラレンス・ジョンソン
知っておくと良い情報です。
phdean
こんにちは、
私も、表示される投稿が毎回同じ2つになってしまうので、カテゴリごとに表示される投稿をランダム化したいと思っています。そのためのコードを教えていただけますか?
よろしくお願いいたします
ジョン
もう結構です。自分で解決しました。投稿ありがとうございます!
編集スタッフ
問題は何でしたか?
管理者
ジョン
同じタグを持つ他の投稿がありませんでした。つまり、関連投稿はありません。ダミーの間違いです。
ジョン
このコードをコピーしてsingle.phpに何も変更せずに貼り付けましたが、何も出力されません。私のコードに何か問題がありますか? pastebin.com/kg0SkrAg
ジェームズ
これではサムネイルが表示されません。コードに画像を表示する呼び出しすらありません。これが機能すると思う人がいるとは思いません。
編集スタッフ
画像のコードは次のとおりです: the_post_thumbnail(); << これは静的なHTMLではなく、img srcコードが表示される場所ではありません。この関数はデータベースに呼び出しを行い、各記事に添付されたサムネイル(フィーチャー画像)を検索します。見つかった場合、画像が出力されます。テーマで投稿サムネイルが有効になっていない場合は、まずそれを追加する必要があります。
https://www.wpbeginner.com/wp-themes/how-to-add-post-thumbnails-in-wordpress/
記事には注記セクションにその旨が明記されています。よく読むことをお勧めします。
管理者
ロベルト・シルバ
やあ、君のブログ大好きだよ!
質問がありますか?
同じトリックを「著者別」でできますか?
著者の最新投稿を表示していますか?
命を救ってくれてありがとう
ところで、このウェブサイトをありがとうございます!
編集スタッフ
はい、すぐに記事をキューに入れます
管理者
ロベルト・シルバ
はい、ありがとうございます…
素晴らしい記事になるでしょう。
「プラグインなしで作者別の最新投稿」はインターネットで見つけるのが難しいからです。
あなたは最高です。
クイン
このコードをありがとうございます。試してみましたが、ある程度は機能します。
関連する記事のリストを取得できます。これは大きなメリットです。
しかし、画像が何も表示されません。
このコードがスクレイピングする場合、記事には画像があります。
カスタムタグ「relatedthumb」で各投稿に画像を作成しましたが、やはり画像は表示されません。
他に何かする必要がありますか?
事前に多謝いたします!
クイン
編集スタッフ
このトリックは、WP 2.9で追加されたデフォルトのWordPressサムネイルを使用しています。サムネイルとして画像が添付されている場合、それが取得されます。
管理者
アンソニー
このモジュールからカテゴリを除外することは可能ですか?
どうもありがとうございます。
アンソニー
編集スタッフ
他の投稿が存在するカテゴリの投稿のみが表示されます…
管理者
マダブ・トリパティ
こんにちは、この良いチュートリアルをありがとうございます。現在、Thesisテーマを使用していますが、Thesisテーマでこの.phpコードを実装する方法を知りたいです。
ソフィー
カスタム投稿タイプのカテゴリで使用するために、彼のコードを変更しようとしています。誰か手伝ってもらえませんか?PHPはほとんど初心者です。
ありがとうございます!
rulethenation
OK、動作しました。サムネイルが利用できない場合にデフォルトの画像を表示する方法はありますか?
編集スタッフ
はい、ifパラメータを使用してプラグインがあるかどうかを確認できます。ない場合は、デフォルトの画像を表示できます。
管理者
rulethenation
どうすればそれを実現できますか?私はPHP初心者です(笑)
Quickbrown
投稿のサムネイルが利用できない場合にデフォルト画像を使用するには、
<?php if (has_post_thumbnail()) {the_post_thumbnail()} else {echo '’;} ?>
に置き換えてください。その後、テーマの画像フォルダの下に default-image.jpg を配置してください。
rulethenation
これが機能しません。コメントの近くのレイアウト全体が台無しになります。何か見落としていますか?サイトから削除しなければなりませんでした
クラレンス・ジョンソン
あなたとこのチュートリアルのおかげで、私の投稿は豊かになりました。
ヘザー・ヒル
こんにちは!
この情報ありがとうございます!まさに探していたものです。
写真と一緒に抜粋を追加する方法はありますか?
再度、ご協力いただきありがとうございます!
編集スタッフ
はい。抜粋を表示したい場所にthe_excerpt(); を追加するだけです。
管理者
Jez
これ、探していたものそのものです!記事が非常に分かりやすく、混乱しないところが気に入っています。
オマー・グリーンワルド
共有ありがとうございます。このコードはしばらく使っていますが、問題があります。投稿にタグを追加すると、WordPressは追加した優先度に関係なくタグをアルファベット順に並べ替えます。そのため、このコードは最初のタグに一致する関連投稿のみを表示し、時には関連性が低くなります。
WordPressによるタグの自動並べ替えを防ぐ方法や、その他の解決策について何かアイデアはありますか?
編集スタッフ
最初のタグは使用していません。このコードは、投稿のすべてのタグを使用して関連記事を見つけます。
管理者
クラレンス・ジョンソン
私も同じ問題を経験しています。
ダグ・C.
最初のコードは、同じ投稿がページに2回表示されるだけでした。関連するものは何も表示されませんでした。
編集スタッフ
Doug様、ライブリンクの例を添えてフォームからお問い合わせください。お手伝いさせていただきます。クライアントのサイトのいくつかがこのコードを使用しているため、機能することはわかっています。
管理者
ヌール
とても役立つ記事です、更新ありがとうございます
リアム
素晴らしいチュートリアルです。このコードを使った動作するsingle.phpを誰か見せてくれませんか?
まだPHPを勉強中です。
残念ながら
構文エラー: 予期しない T_ENDIF が C:\xampplite\htdocs\mock\wp-content\themes\scwd\single.php の 76 行目で発生しました。
編集スタッフ
動作する例を次に示します。Flowtown Blog。
このコードはループ内で機能するように設計されていることに注意してください。どこに投稿しようとしていますか?ループの外にある場合は、endif; << のように end if コードを追加してください。
管理者
リアム
http://pastebin.com/m60c96f5f
リンクが機能することを願っています。ありがとうございます。
編集スタッフ
何が間違っているのか分かりません。clearfloatクラスの後ならうまくいくはずです。flowtownにこのように入れて、完璧に動作しています。
リアム
テーマを完成させて、XAMPではなくライブサイトで試します。お知らせします。
シャハブ
素晴らしいチュートリアルです!
今はYARPPを使っていますが、ぜひこちらを試してみたいです!
ありがとうございます
スリヤ・クマール・P
皆さん、本当に素晴らしい仕事をしています。本当にありがとうございます。
Vivek @ InfoEduTech
この記事をありがとうございます。記事にサムネイルを表示するために長い間探していましたが、実行できませんでした。多くのWordPressプラグインを試しましたが、うまくいきませんでした。これが私の助けになることを願っています