新潟県妙高市|ホームページと広告の相談相手

妙高Web屋

お仕事のご依頼お見積りのご依頼

WordPress

カスタム投稿タイプの個別ページに関連記事を表示する方法【WordPress】

2019.3.16

カスタム投稿タイプの個別ページに関連記事を表示する方法【WordPress】
WordPress 0 0

こちらの記事は、このような方におすすめです。

・WordPressのホームページで「投稿」以外に「カスタム投稿タイプ」を持つホームページを管理されている方
・カスタム投稿タイプで作っているコンテンツの各ページの回遊率をアップさせたいとお考えの方

妙高Web屋LINE@ 友だち追加

WordPressで、デフォルトで備わっている「投稿」のページに「関連記事」を表示させる方法は、色々なものが用いられています。

一方で、中には「投稿」以外にも、カスタム投稿タイプの個別記事に「関連記事」を追加したいという場合もあるかと思います。

今回は、そちらの方法のご紹介です。

この記事の目次

【結論】カスタム投稿タイプの個別記事に関連記事として「同じタームの記事」を表示する方法

まずは結論から、こちらのコードです!

<?php
global $post;
$term = array_shift(get_the_terms($post->ID, 'txs_name')); // ターム情報を取得する
$args = array(
'numberposts' => 8,
'post_type' => 'cpt_name', // カスタム投稿タイプ名(半角英数字で)
'taxonomy' => 'txs_name', // カスタムタクソノミー名(半角英数字で)
'term' => $term->slug, // タームのスラッグ
'orderby' => 'rand', // 表示形式(降順ならDESC/昇順ならASC/ランダムならrand)
'post__not_in' => array($post->ID) // 表示中の個別記事を除外する
);
?>
<?php $cptPosts = get_posts($args); ?>
<?php if($cptPosts) : ?>
    <?php foreach($cptPosts as $post) : setup_postdata($post); ?>
  • <?php the_title(); ?>
  • <?php endforeach; ?> < END.listName //>
<?php else : ?> 関連する投稿はありません。 <?php endif; ?> <?php wp_reset_postdata(); ?>

こちらのコードによって、カスタム投稿タイプの特定の個別記事において、同じタームの記事が存在する場合はリンク付きの関連記事リストが表示され、同じタームの記事が1件も存在しない場合は、pタグで「関連する投稿はありません。」というメッセージが表示されるはずです。

ページの先頭へ戻る

[詳細]ポイントは「同じタームの記事の取得」と「表示中の記事の除外」の2種類!!

上記のコードのうち条件取得部分の処理を、コメントアウト部分のみを変えて抜粋します。

(↓コチラのコードのみをWordPressのテンプレートファイルにペーストしても何も表示されない可能性があります、ご了承ください。)

<?php
global $post;
$term = array_shift(get_the_terms($post->ID, 'txs_name')); // (1)ターム情報を取得する
$args = array(
'numberposts' => 8,
'post_type' => 'cpt_name', // (2)カスタム投稿タイプ名
'taxonomy' => 'txs_name', // (3)カスタムタクソノミー名
'term' => $term->slug, // (4)タームのスラッグ
'orderby' => 'rand', // (5)表示形式(降順ならDESC/昇順ならASC/ランダムならrand)
'post__not_in' => array($post->ID) // (6)表示中の個別記事を除外する
);
?>

表示件数(numberposts)と表示順(orderby)は任意の値を設定してみてください。

上記の処理でポイントになっているのは2つです。

[ポイント1]同じタームの記事を取得する処理

1つ目が「同じタームの記事を取得する処理」です。

主に関連するのは上記のコメント番号(1)(3)(4)です。

まず(1)で、表示中の記事のターム名を取得します。

例えば物件情報サイトで「間取り(madori)」というタクソノミーにおいて、ターム名が「1K(1k)」だったと仮定した場合、(3)に相当するのが[madori]で(4)に相当するのが[1k]にあたります。

[ポイント2]表示中の記事を除外する処理

2つ目が「表示中の記事を除外する処理」です。

主に関連するのは上記のコメント番号(6)です。

カスタム投稿タイプに限らず、デフォルトの「投稿」でも関連記事が表示されているホームページを見かけます。

例えば「WordPressでホームページを作る方法」のような個別記事があって、それが「記事ジャンル」というタクソノミーで「WordPress活用術(wp-katsuyou)」のようなターム名が設定されていたと仮定しましょう。

その仮定で、今回の記事の場合に「関連記事一覧」のエリアに表示されるのは、ターム名が「WordPress活用術(wp-katsuyou)」の記事ですよね?

そうした条件下では、表示中の記事が「関連記事一覧」の中にも表示されてしまう可能性があるのです。

「あれ、別の記事かと思って押してみたけれど、結局同じ記事だったのか」

と利用者の方がお考えになることで、そこで閲覧を止めてしまう可能性も考えられます。

そういった状況を防ぎ、ホームページ内の回遊率を高める一環で、上記コメントにおける(6)の処理を加えておくのです。

それによって、同じ記事に何回もアクセスしてしまう状況を回避する効果が期待できます。

ページの先頭へ戻る

参考サイト

今回の記事を作成するにあたり、こちらの記事を参考にさせていただきました。

ありがとうございました。

ページの先頭へ戻る

こちらの記事に感想をお寄せください

こちらの記事をご覧いただき、感じたことなどありましたら下記のボタンを押していただき「感想投稿フォーム」よりお気軽にご感想をお寄せください。

この記事の感想を投稿する
妙高Web屋LINE@ 友だち追加
0 0

LINE@始めました!

妙高Web屋ではこのたび、LINE@(ラインアット)を始めることとなりました。

企業やお店のWeb担当者さまへ向けて、ホームページの運営・管理・更新に関する情報を発信していきます。

情報を購読できる「友だち」へのご登録は、下記のボタンよりお願いいたします。

目的のページは見つかりましたか?

お探しのページが見当たらない場合は、キーワードを手がかりに、サイト内検索をご利用ください。

または、下記のボタンより「サイトマップ」のページにアクセスしていただき、お探しください。

目的のページは見つかりましたか?
Twitterでシェアする Twitterでシェアする Facebookでシェアする Facebookでシェアする Feedlyで購読する Feedlyで購読する お問い合わせお問い合わせ ページの先頭へページの先頭へ