1. >
  2. >
  3. 投稿の下に出てくる前後の記事ナビゲーションを同カテゴリの関連記事にしたい

投稿の下に出てくる前後の記事ナビゲーションを同カテゴリの関連記事にしたい

関連記事のイメージ
PHP

前後の記事へボタンを消したい

次へとか前の記事へとかテーマに付いてる既存ナビゲーションがいらないなぁとか、
同じカテゴリの関連記事一覧に変更したいと思い立って変更してみた。

置き換えとる場合は、
single.phpの中にある「get_next_post()」 とか 「get_previous_post()」、「post_nav()」とかで記載されているものを探す。

単純に不要であればナビを削除してしまえばOK。なくなるとちょっと寂しくなる時は関連記事一覧に変更してみるのはどうでしょう。

関連記事に変更したい

以下は同カテゴリの関連記事を出すように指示しています。

※posts_per_page で表示させる記事数を変更できる。
今は2記事分だけど、4つくらいあったほうが見栄えが良いかもしれませんね。

また、サムネイル付で呼び出すようにしてあるので、基本的にアイキャッチ設定しているほうが良いです。
画像が無い時のためにノーイメージを出すように条件分岐しています。
「no_image.png」をお好みの画像に差し替えてあげればOKです。

あと、記事が無いときは、「記事はありませんでした」になるので、不要であればここらへんは削除。
「関連する記事」部分に関してもサイトに合わせて変更してください。

single.phpのコンテンツ下に以下をコピペ

 
<?php
$categories = get_the_category($post->ID);
$category_ID = array();
foreach($categories as $category):
  array_push( $category_ID, $category -> cat_ID);
endforeach ;
$args = array(
  'post__not_in' => array($post -> ID),
  'posts_per_page'=> 2,
  'category__in' => $category_ID,
  'orderby' => 'rand',
);
$query = new WP_Query($args); ?>

<div class="subcontent_title">関連する記事</div>

<?php if( $query -> have_posts() ): ?>
<ul>
  <?php while ($query -> have_posts()) : $query -> the_post(); ?>
    <li>
       <p>
        <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>">
        <?php if ( has_post_thumbnail() ):   ?>
        <?php echo get_the_post_thumbnail($post->ID); ?>
        <?php else:  ?>
        <img src="<?php echo get_template_directory_uri(); ?>/images/no_image.png" alt="NO IMAGE" title="NO IMAGE" />
        <?php endif; ?>
        </a>
      </p>
      
      <p>
        <a href="<?php the_permalink(); ?>">
          <?php the_title(); //記事のタイトル?>
        </a>
      </p>       
     </li>
  
  <?php endwhile;?>
</ul>

  <?php else:?>
  <p>記事はありませんでした</p>

<?php endif; wp_reset_postdata(); ?>

応用編

今回紹介した内容は単純にコンテンツ下部に設置したら、関連記事を呼び出してくれるので結構使えます。
ページナビゲーションの部分を置き換える形で紹介しましたが、フッターに置くのもコンテンツ量を多く見せるにはアリです。ごちゃごちゃしてしまわないように注意しましょう。

カテゴリー: PHP

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る