WordPressのカスタマイズやテーマファイル、プラグインの作り方などデータベース構造から詳しく解説します。

[WordPress]関連する記事の表示をプラグインを使わずに行う

カテゴリに関連する記事を取得する

カテゴリに関連する記事を取得し、表示してみます。メディアを運用する方などはよく使用されるかと思います!!

記事のカテゴリ情報から10件の記事を取得する。
<?php
$categories = get_the_category($post->ID);
$category_ID = array();
foreach($categories as $category){
  array_push( $category_ID, $category -> cat_ID );
}
$args = array(
  'post__not_in' => array($post -> ID),
  'post_per_page' => 10,
  'category__in' => $category_ID,
  'orderby' => 'rand'
);
$query = new WP_Query($args);
?>
<?php if( $query -> have_posts() ): ?>
<?php while(query -> have_posts()) : $query -> the_post(); ?>
  // 表示内容
  <ul>
    <li><?php the_post_thumbnail(array(100, 100)); ?></li>
    <li><?php the_title(); ?></li>
    <li><?php the_content(); ?></li>
  <ul>
<?php endwhile;?>
<?php else: ?>
  <p>記事はありません</p>
<?php endif; ?>
// リセットする
wp_reset_postdate();
?>

タグの関連記事を取得する

タグに関連する記事を取得してみます!

$tags = wp_get_post_tags($post->ID);
$tag_IDs = array();
if(tags) {
  $count = count($tags);
  for($i = 0; $i < $count; $i++) {
    $tag_IDs[$i] = $tags[$i]->term_id;
  }
$args = array(
  'tag__in' => $tag_IDs,
  'post__not_in' => array($post->ID),
  'showposts' => 4,
  'caller_get_posts' => 1
);

$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
  while($my_query->have_posts()) : $my_query->the_post();
?>
  <li>
    <h4>
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </h4>
  </li>
  <li>
    <?php the_content(); ?>
  </li>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php } else { ?>
<p>記事はありません</p>
<?php } } ?>

おわり

今回は記事に関連するカテゴリーとタグで記事一覧を取得し、表示する方法をご紹介しました。
プラグインで出力するのも簡単ですが、自分でカスタマイズすることによって、よりWordPressの理解を深めていけるといいですね!!!筆者もまだまだがんばります!!!!

関連記事

ページ上部へ戻る