これから Nishiki Pro
テーマを使うなら1度は確認しよう!

Nishiki テーマおすすめ設定 テーマおすすめ設定を見る
  1. ホーム
  2. マニュアル
  3. Nishiki Pro:絞り込み検索機能で、タクソノミー別で項目(ターム)の取得条件を変更し、さらに並び順を変更する方法

このページでは、Nishiki Pro テーマの絞り込み検索機能で、タクソノミー別でタームの取得条件を変更したり、並び順を変更する方法を解説しています。

注意!

このカスタマイズは、PHP でコードが書けたり、ワードプレスのカスタマイズ知識や技術をある程度持っている上級者向けです。

カスタマイズ用のプラグインを作ったり、子テーマを作って functions.php 内にコードを追記するなどで実装してください。

サンプルコード

いきなりですが、サンプルコードを紹介します。

「nishiki_pro_multiple_search_terms」フィルターを使って、タクソノミー名がタグ(post_tag)の場合、タームの取得条件を変更しています。

nishiki_pro_multiple_search_terms フィルターを使って、特定のタクソノミーでタームの取得条件を変更

// 絞り込み検索でタクソノミー別でタームの取得条件を変更する
if( ! function_exists( 'nishiki_pro_custom_multiple_search_terms' ) ) {

 function nishiki_pro_custom_multiple_search_terms( $terms, $taxonomy, $args ){

  // タクソノミーが「タグ」の場合「term_order」で並び替えする
  if( $taxonomy == 'post_tag' ){
   $args = array(
    'orderby' => 'term_order',
   );

   $terms = get_terms( $taxonomy, $args );
  }

  return $terms;
 }

 add_filter( 'nishiki_pro_multiple_search_terms', 'nishiki_pro_custom_multiple_search_terms', 10, 3 );
}

ここで重要なことがあります。

上のコード内で、特定のタクソノミーのタームをバラバラっと取得する「get_terms」を使っていますが、この「get_terms」の第 2 引数「$args」内で指定した「term_order」は、標準では効きません。

なので、次のコードのように「get_terms_orderby」フィルターを使って、タームの取得条件を変更します。

get_terms_orderby フィルターを使って、タームの取得条件を変更

// タームの取得条件を変更する
if( ! function_exists( 'nishiki_pro_custom_multiple_search_terms_orderby' ) ) {
 function nishiki_pro_custom_multiple_search_terms_orderby( $orderby, $query_vars, $taxonomy ) {

  if ( is_admin() ) return $orderby;

  if( ! isset( $query_vars['taxonomy'] ) ) return $orderby;

  // term_order で並び替えするかどうかを判別
  if( isset( $query_vars['orderby'] ) && $query_vars['orderby'] == 'term_order' ){
   $orderby = 't.term_order';
  }

  return $orderby;
 }

 add_filter( 'get_terms_orderby', 'nishiki_pro_custom_multiple_search_terms_orderby', 10, 3 );
}
ポイント

カテゴリーやタグなど、タクソノミーのタームの順番を並び替える「Category Order and Taxonomy Terms Order」などのプラグインを使うと、データベースの term_relationships テーブルの「term_order」カラムに値(数字)が入ります。

この「term_order」の値に沿って並び替えする、って感じですね。

このページが役に立ちましたら、ぜひシェアしてください。

WordPress テーマ Nishiki Pro

「ウェブサイト運営に本当に必要とされる機能」をテーマ内にまとめて搭載した WordPress テーマです。

ブロックエディター機能を強化し、これまでの WordPress では難しかったコンテンツが簡単に作れます。

ブログ、ポートフォリオ、コーポレートサイト、ビジネスサイトなど、様々な目的のウェブサイトに対応できるテーマです。