PHP Code Widget で関連記事表示

記事の前後にウィジェットを作成したので、PHPコードを用いて関連記事を表示させるために PHP Code Widget プラグインを導入しました。

関連記事を表示させる為のプラグインは、いろいろありますが、別のアプローチとしてPHPコードを記述して対応する方法があります。

プラグインを使わずに実行というと難しく聞こえますが、PHPをウィジェットに記述出来るプラグインがありますので、これを導入すれば、ウイジット内で手軽にPHPコードの実行テストが出来ます。
PHPの勉強にもなります (^^)

PHP Code Widget プラグイン

WordPressのダッシュボードからプラグイン PHP Code Widget を検索してインストール、有効化を行います。

特に設定はなく、ウィジェットに PHP Code というウィジェットが追加されます。

このウィジェットは、テキストウィジェットと同様に扱うことが出来て、サイドバー等のウィジェットエリアにドラッグドロップして、PHPコードを記述することが出来ます。

clip_image001

関連記事表示

PHPで関連記事を表示しているコードを公開しているサイト WordPressのSEO勘所!同カテゴリー記事を表示する方法 – 但し子カテゴリー記事は除く のコードを参考にちょっとだけ修正しました。

<?php
$post_id = get_the_ID();
$categories = get_the_category();
foreach($categories as $category):
$related_posts = get_posts(array('category__in' => array($category->cat_ID), 'post__not_in' => array($post_id),  'numberposts' => -1));
if($related_posts): ?>
<ul>
<?php foreach($related_posts as $related_post): ?>
<li><a href="<?php echo get_permalink($related_post->ID); ?>"><?php echo $related_post->post_title; ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; endforeach; ?>

わかる範囲で少しだけ解説すると、現在のカテゴリーから同一の記事を取得して、記事のパーマリンクを取得してリンクを作成し、番号なしリストで表示をしています。

get_the_ID 現在の記事のIDを返します
get_the_category 記事のカテゴリー名、ID、カテゴリースラッグ、説明、親カテゴリーなどの情報をPHPの配列として返す
get_posts 
 
 

条件に一致する記事を取得する

パラメータ:

category__in:指定カテゴリーに含まれる投稿(子孫カテゴリーは除く)

post__not_in:指定記事IDを除外

numberposts :取得件数(-1で全ての記事を対象)

get_permalink 指定した記事IDのパーマリンクをPHPの値として返す

get_post で与えるパラメータで取得する記事を絞り込んでいるのですが、指定できるパラメータが非常に多岐にわたっており、様々な条件を設定出来ますが理解していくのも大変な量があります。

※元記事のコードで使用していたパラメータ ‘exclude’ は、現在の記事をうまく除外できなかったので ‘post__not_in’ へ変更しました。

これで昨日紹介した 記事前後部のウイジェットエリア作成 と組み合わせることで、関連記事の一覧を表示することが出来るようになりました。

image

いろんな事に応用出来そうです。

関連コンテンツ


まとめ記事紹介

search star user home refresh tag chevron-left chevron-right exclamation-triangle calendar comment folder thumb-tack navicon angle-double-up angle-double-down angle-up angle-down quote-left googleplus facebook instagram twitter rss