小金井にあるWEB制作会社の備忘録

MEMORANDUM

WordPress(ワードプレス)で記事ページに関連ページを表示する

ワードプレスで自社コンテンツを運用されている際など、各記事の下に関連記事などを設置し、滞在時間を延ばす施策をした際に行った方法をメモ。

PHP

<?php

$post__not_in = (array)$id;
$term_vars = get_the_terms( $post->ID, '○○○○-cat' );
$vars = array();
foreach($term_vars as $teram_var){
	array_push($vars, $teram_var->slug);
}

$args = array(
	'post_type' => '○○○○',
	'post__not_in' => $post__not_in, //表示中の記事を除外
	'posts_per_page' => 3, //表示件数
	'tax_query' => array( 
		'relation' => 'OR',
		array(
			'taxonomy' => '○○○○-cat',
			'field' => 'slug',
			'terms' => $vars,
			'operator'=>'IN'
		),
	),
);

$new_query = new WP_Query($args);
if ( $new_query ->have_posts() ) : while($new_query ->have_posts()) : $new_query ->the_post();

?>
<li>
	<a href="<?php the_permalink() ?>">
		<?php if(has_post_thumbnail()) {
			echo('<div>'.the_post_thumbnail().'</div>');
		} ?>
		<span><?php the_time('Y.m.j') ?></span>
		<span><?php the_title(); ?></span>
	</a>
</li>

<?php endwhile; endif; wp_reset_postdata(); ?>

上記の参考コードは対象記事の所属するカテゴリーと同一のカテゴリーを表示させています。
カテゴリーが複数に所属する場合もあるため、カテゴリーは配列に格納した後に「tax_query」に挿入。
自身のページを表示しないよう「post__not_in」を使用して除外しています。

同一カテゴリーの記事