2018/07/15 改訂版 「『あなたの悩み、分かるわ』詐欺に気を付けろ」「周りの人をカウンセラーにしない」「人生なんて相談しても仕方がないことが多い」

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

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

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

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

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

//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 に条件分岐を記入しています。

Tags: ,

最終更新日: 2018年2月12日  初回公開日:2017.12.13

海洋小説『曙光』MORGENROOD

CTA-IMAGE
海洋科学、鉱業、建築などをモチーフにした新感覚の人間ドラマ。『生の哲学』をテーマに人生、恋愛、仕事について描く長編小説です。Kindle Unlimitedなら読み放題。