WEB系キャンパス

【WordPress】single.phpに書く「次の記事へ」「前の記事へ」の種類まとめ

WordPressの投稿の詳細ページはtheme内の「single.php」の内容が呼びされています。
記事の最後には「次の記事へ」「前の記事へ」ってのが、よく設置されていますが、デザインや表示させるものや、投稿の種類など、用途によって、使い分ける事があるのでまとめておきます。

通常(タイトルリンク)

<?php previous_post_link('%link', ''%title'); ?>
<?php next_post_link('%link', ''%title'); ?>

 

リンクを任意のテキストに

<?php previous_post_link('%link', ''次の記事>'); ?>
<?php next_post_link('%link', ''前の記事'); ?>

 

同じカテゴリにしたい場合

<?php previous_post_link('%link', '%title', TRUE, ''); ?>
<?php next_post_link('%link', '%title', TRUE, ''); ?>

 

指定カテゴリを除外(カテゴリIDの12を除外したい場合)

<?php previous_post_link('%link', '%title', false, '12'); ?>
<?php next_post_link('%link', '%title', false, '12'); ?>

 

複数カテゴリを除外(カテゴリIDの12と13を除外したい場合)

<?php previous_post_link('%link', '%title', false, ‘12,13'); ?>
<?php next_post_link('%link', '%title', false, ‘12,13'); ?>

 

カスタム投稿の場合(タクソノミー名がnewsの場合)

<?php previous_post_link('%link','前の記事', ' ','news'); ?>
<?php next_post_link('%link','前の記事', ' ','news'); ?>

 

リンクがあるかないかの判断
<li>に装飾とかしていると、空っぽの<li>が表示されてしまうので、「次の記事(next post link)」と「前の記事(previous post link)」がある場合の条件分岐で囲っておく


<ul>
    <?php if (get_previous_post()):?>
<!-- 前の記事がある場合 -->

<li class="prev">
      <span>&lt;Prev</span>
      <?php previous_post_link('%link', '%title', false, '102'); ?>
    </li>

  <?php endif; ?>
  <?php if (get_next_post()):?>
<!-- 次の記事がある場合 -->

<li class="next">
      <span>Next&gt;</span>
      <?php next_post_link('%link', '%title', false, '102'); ?>
    </li>

  <?php endif; ?>
</ul>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です