wordpressでの特定のカテゴリーを除外した一覧表示とおまけ

2022.05.28

やりたいこと

Aというカテゴリーの記事を開いている場合は最近の記事一覧をAカテゴリーにするかつ、前後ページへのリンクもAカテゴリーに変更する。

B,C,Dカテゴリーの記事を開いている場合はAカテゴリーが記事一覧と前後ページの誘導リンクに含まれない様にする。

方法

previous_post_linkの第四引数で調整できる。next_post_linkも同じ容量。

第一と第二引数の説明は省いて、第三引数は同じカテゴリー内の指定を決めている。trueにすれば同じカテゴリーのみの表示に変更できる。

第四引数では除外したいカテゴリーのidを指定している。複数指定する場合は配列もしくは『,』で区切る方法がある。

通常はカテゴリーidが4であれば除外してそれ以外の記事を表示し、記事idが4の場合は同じカテゴリーを表示する様にしている。

<?php
  // カテゴリーidが4の場合は他の記事と混ざらない様にしている(今回だとAカテゴリー)			  			
  $category = get_the_category();
  $remove_cat = 4;
  $same_cat = FALSE;
  if($category[0]->term_id == 4) {
    $remove_cat = "";
    $same_cat = TRUE;
  }
?>

// $assign_catに値を入れて除外するか処理を分けている。
<p>
  <?php previous_post_link('%link', '%title', $same_cat, $remove_cat); ?>
</p>
<p>
  <?php next_post_link('%link', '%title', $same_cat, $remove_cat); ?>
</p>

おまけ

zipファイルへの圧縮方法。以下はhogeフォルダーからhage.zipを作成する。macのfinderだと時間かかったので備忘録として置いておく。

zip -r hoge.zip hoge/