関連記事 テンプレートファイル

カスタムポストの関連記事を一発表示 『Related Posts by Taxonomy』

関連記事 テンプレートファイル

関連記事をリスト表示する方法はいろいろありますが、カスタムポストの場合、プラグインが対応してなかったり、テンプレート・ファイルに複雑な記述が必要だったり、面倒なことがままあります。

見た目にこだわらず、簡単にリスト表示したい場合は、プラグイン『Related Posts by Taxonomy』がおすすめ。

手軽に、サイトに負担をかけず、必要なカスタマイズ機能は全てそろっています。テンプレート・ファイルへの埋め込みも一行だけ。
非常に便利な関連記事系のプラグインなので、面倒が嫌いな方におすすめです。

https://ja.wordpress.org/plugins/related-posts-by-taxonomy/

Related Posts by Taxonomyの使い方

関連記事の表示の仕方は二通りあります。

1) functions.phpにコードを記入し、投稿(content) の下部に自動表示する。

2)任意の場所にショートコード、もしくはPHPテンプレート・タグを挿入し、手動で表示する。

プラグインのドキュメントはこちら。

Related Posts by Taxonomy

functions.phpにコードを記入し、投稿(content) の下部に自動表示

基本のコードは次の通り。通常の投稿に自動表示されます。


add_filter( 'the_content', 'add_related_posts_after_post_content' );
function add_related_posts_after_post_content( $content ) {

//check if it's a single post page.
if ( is_single() ) {

// check if we're inside the main loop
if ( in_the_loop() && is_main_query() ) {

// add your own attributes here (between the brackets [ ... ])
$shortcode = '[related_posts_by_tax posts_per_page="4"]';

// add the shortcode after the content
$content = $content . $shortcode;
}
}

return $content;
}

特定のカスタムポストやカテゴリーに限定する場合

if ( is_single() ) の部分を、カスタムポスト・タイプに変更します。
たとえば、カスタムポストの種類が news の場合

//check if it’s a single post page.
if ( is_singular(‘news’) ) {

複数のカスタムポストに表示する場合

if ( is_singular(‘news’,’book’,’movie’) ) {

特定のカテゴリーにのみ表示する場合

if ( is_category(‘news’,’book’,’movie’) ) {

任意の場所にショートコードを挿入する

functions.php を使わず、個別に記事に挿入する場合、基本のショートコードは次の通り。

[related_posts_by_tax]

・関連記事を10個、表示する

[related_posts_by_tax posts_per_page="10"]

・特定のカテゴリーやタグにのみ表示する。category post_tagに該当のカテゴリー名やタグ名を記述。

[related_posts_by_tax taxonomies="category,post_tag"]

・特定のポストタイプ『投稿』『movie』だけに表示する

[related_posts_by_tax post_types="post,movie"]

・関連記事の表示順をランダム、もしくは昇順に並べる。デフォルトはDESC(降順)。昇順=ASC。ランダム=RAND

[related_posts_by_tax order="RAND"]

・h3タグのタイトルを設定

[related_posts_by_tax title="My Related Posts"]

テンプレート・タグを使って手動で挿入

テンプレート・タグを手動で挿入して、特定のカスタムポストやカテゴリーにのみ関連記事を表示する場合、やり方は二つあります。

1)デフォルトのsingle.phpを元に、カスタムポスト専用のsingle-○○(カスタムポスト名).phpを作成して、表示したい場所にテンプレート・タグを挿入。

2) 条件分岐を使って、特定のカスタムポストやカテゴリーにのみ表示させる

PHPタグにショートコードを反映させる基本の記述

<?php echo do_shortcode('[ショートコードの文字列]'); ?>

related_posts_by_taxの応用

<?php echo do_shortcode('[related_posts_by_tax posts_per_page="6" order="RAND" title="WordPressに関する記事"]'); ?>

下記のように記述すれば、投稿の下部に関連記事リストが自動表示されます。


<?php the_content(); ?>
<?php echo do_shortcode('[related_posts_by_tax posts_per_page="6" order="RAND"]'); ?>

特定のカスタムポストやカテゴリーにのみ表示する場合、上述の条件分岐を応用します。

カスタムポストタイプ『news』にのみ関連記事を表示


<?php if ( is_singular( 'news' ) ): ?>
<?php echo do_shortcode('[related_posts_by_tax posts_per_page="6" order="RAND"]'); ?>
<?php endif; ?>

特定のカテゴリーにのみ関連記事を表示。IDが2と8の場合。


<?php if ( in_category( array( '2','8' ) ): ?>
<?php echo do_shortcode('[related_posts_by_tax posts_per_page="6" order="RAND"]'); ?>
<?php endif; ?>

他にもお洒落なプラグインはたくさんありますが、このプラグインは非常に軽いので、データベースにも負担をかけません。
テキストだけで簡単に表示したい方におすすめです。
(パラメータを使えば、サムネイル表示も可能です)

↓ 下の関連記事が当プラグインで作成したものです。functions.php に条件分岐を記入しています。

>海洋小説『曙光』MORGENROOD

海洋小説『曙光』MORGENROOD

宇宙文明の根幹を支える稀少金属ニムロディウムをめぐる企業と海洋社会の攻防を舞台に描く人間ドラマ。生きる道を見失った潜水艇パイロットと愛を求めるフォルトゥナの娘の恋を通して仕事・人生・社会について問いかける異色の海洋小説です。
Kindle Unlimitedなら読み放題。
Amazonの海洋学ランキングで一位を記録。

CTR IMG

Fatal error: Uncaught Error: Call to undefined function WP_Optimize() in /home/marier/novella.works/public_html/wp-content/plugins/wp-optimize/cache/file-based-page-cache-functions.php:149 Stack trace: #0 [internal function]: wpo_cache('\r\n<!DOCTYPE htm...', 9) #1 /home/marier/novella.works/public_html/wp-includes/functions.php(4552): ob_end_flush() #2 /home/marier/novella.works/public_html/wp-includes/class-wp-hook.php(288): wp_ob_end_flush_all('') #3 /home/marier/novella.works/public_html/wp-includes/class-wp-hook.php(312): WP_Hook->apply_filters('', Array) #4 /home/marier/novella.works/public_html/wp-includes/plugin.php(478): WP_Hook->do_action(Array) #5 /home/marier/novella.works/public_html/wp-includes/load.php(947): do_action('shutdown') #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /home/marier/novella.works/public_html/wp-content/plugins/wp-optimize/cache/file-based-page-cache-functions.php on line 149