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

Nishiki テーマおすすめ設定 テーマおすすめ設定を見る
  1. ホーム
  2. マニュアル
  3. Nishiki(Pro)
  4. 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

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

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

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

最新情報をチェック!

Nishiki / Nishiki Pro テーマに特化した情報を「にしきちゃん」がお伝えします😀

  • リリース情報
  • 新機能の紹介
  • 便利な使い方
  • 開発中の機能紹介
  • 導入事例
  • あるある日常ネタ

など