yarpp_related()のパラメータで指定した関連記事を出力|YARPP

WordPressのプラグイン『Yet Another Related Posts Plugin(以後、YARPPと表記)』では、現在の投稿や固定ページなどで、そのページに関連する記事を取得し表示することが出来ます。

YARPPでは、決まった場所に関連記事を自動で表示できますが、プラグインの関数、yarpp_related()を使用すれば、任意の場所に関連記事を表示することもできます。

今回は、そのyarpp_related関数を使用しクエリを変更して、表示する関連記事のデータをカスタマイズする例となります。

yarpp_related関数について

yarpp_related関数は、関連記事を表示させたい場所に記述します。関数のパラメータを指定すると、クエリを変更し、指定した条件の関連記事を表示することができます。

yarpp_related関数のパラメータを指定し、関連記事を表示する例としては、関連記事を2ヵ所以上に表示する際に、それぞれ違う条件やテンプレートで表示させたい場合などがあります。

 yarpp_related()の主なパラメータ

今回の例では、パラメータを項目ごとに分けて指定しましたが、実際に指定する際には、表示させたい条件のパラメータを同じ配列で指定します。

パラメータを指定しない場合は、WordPress管理画面のYARPPの設定で指定した条件によって、関連記事が表示されます。

表示順序やテンプレートを指定する例

表示順序やテンプレートを指定するパラメータの例です。

<?php
$args = array(
	// 関連記事を表示する最大件数
    'limit'    => 5, 
    // ソート順を指定。 ソート順の対象と昇降順(ASCかDESC)を指定
    'order'    => 'score DESC' 
    // 使用するテンプレートの名前を指定
    'template' => 'yarpp-template.php',
);
yarpp_related($args);
?>

関連記事として表示させる記事を指定する例

関連記事として表示させる記事を指定するパラメータの例です。

<?php
$args = array(
	// 指定したページのタイプを取得。post、pageなど
    'post_type' => array('post', 'page'), 
    // 指定したタクソノミー・タームのIDのを持つ投稿を除外
    'exclude'   => array(), 
    // 指定した期間までの過去記事のみ取得。
    // 期間を指定しない場合はfalse、指定する場合は、'15 day', '20 week', '12 month' など、期間を指定
    'recent'    => false, 
);
yarpp_related($args);
?>

記事の関連スコアなどを指定する例

記事の関連スコアなどを指定するパラメータの例です。プラグイン『YARPP』では、記事の関連スコアを計算し、指定した関連スコア以上の記事だけを表示します。

<?php
$args = array( 
	// 指定した関連スコア以上を表示
    'threshold' => 1,
    // 関連スコアを計算する際に重要視する要素のレベルを指定。数字が大きいほど重要視
    'weight' => array(
    	'title' => 2, //タイトル
    	'body'  => 2, //本文
    	'tax'   => array( //タクソノミーの指定
      		'post_tag' => 1,
      		'category' => 1,
        )
    ),、
    // 関連投稿に表示する条件として、
    // 指定したタクソノミーを指定した数以上、共通で持つ投稿にする。
    'require_tax'  => array(
    	'post_tag' => 1
	),
);
yarpp_related($args);
?>

関数yarpp_related()のパラメータなど、プラグイン『YARPP』の詳細は、以下のスライドや参考サイトを確認してみてください。

参考サイトなど

 

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。