WordPressで複数カテゴリを選択した投稿でのパンくずリストに表示されるカテゴリの優先度を指定する

WordPress

ワードプレスでは、デフォルトではカテゴリ名順に優先順位が決まるため、表示をさせたいカテゴリにならないことがあります。

 

ここで使用させてもらっているワードプレステーマ「Simplicity」でも同様でした。

 

検索したところ、こちらに解決策がありました。

複数カテゴリを選択した投稿でのパンくずの表示カテゴリを指定したい | WordPress.org 日本語

 

 

 

手順1 プラグイン「ps_taxonomy_expander」をインストール

PS Taxonomy Expander
カテゴリ、タグやカスタム分類がより有用になります。

 

 

手順2 インストール後、ダッシュボードのサイドバー「Term order」をクリックし、カテゴリーの順位を変更する

 

 

手順3 下記コードを使用しているテーマの「functions.php」に追加する

function my_priority_category_parent($t){
	if($t->parent){
		$pt = get_term($t->parent,$t->taxonomy);
		if ($pt->parent){
			return my_priority_category_parent($pt);
		}else{
			return $pt;
		}
	}else{
		return $t;
	}
}

function my_priority_category_sort($a,$b){
	$c = my_priority_category_parent($a);
	$d = my_priority_category_parent($b);
	if ($c->term_order == $d->term_order) {
		return 0;
	}
	return ($c->term_order < $d->term_order) ? -1 : 1;
}

function my_priority_category($terms) {
	if (is_single()){
		usort($terms,'my_priority_category_sort');
	}

	return $terms;
}
add_filter('get_the_terms', 'my_priority_category');

 

 

以上の設定で、「Term order」で設定した順番にぱんくずリストで表示される優先順位が変わります。

コメント