jQuery WordPress

WordPressのクエリーループブロックのカテゴリーごとに色を変更する方法

カテゴリーを色分けしたい
WordPressのグーテンベルクのクエリーループブロックは便利だけど、カテゴリーごとにカテゴリー名が色変えできたらいいなと思ってjQueryを使用した。
そのうちWordPress公式がスラッグをclass属性として付与、とかになってくれたらいいなの希望もこめて覚書。

前提


クエリーループブロックを使う
[クエリーループブロック]-[投稿テンプレート]内に[カテゴリー]ブロックを追加する
これでクエリーループを使って記事一覧ページを作る際に、記事ごとの選択カテゴリーも表示されるようになる。

jQuery( function( $ ) {
	//カテゴリーがマッチしたらクラスを付与
	jQuery.each({
	  "ニュース":"news",
	  "イベント":"event",
	  "お知らせ":"topics",
	  "各種情報":"info",
	},function(i,j){
	  $('.taxonomy-category a').filter(function(){return $(this).html()==i}).addClass(j);
	});
});

カテゴリーブロックには各カテゴリーのaタグをつつむ、taxonomy-category wp-block-post-termsというクラスを付与されたdiv要素があります。(ちょっと説明下手かも)
なので上のjQueryでは、taxonomy-category以下のaタグの文字列(ここではカテゴリー名)が「ニュース」だったら、そのaタグにnewsというクラス属性を追加する、といった感じ。
"aタグ内の文字列":"class名", で設定しています。

実際のソースコードは下記。

<div class="taxonomy-category wp-block-post-terms">
 <a href="https://example.com/topics" rel="tag" class="topics">お知らせ</a><span class="wp-block-post-terms__separator"> </span>
 <a href="https://example.com/info" rel="tag" class="info">カテゴリー名</a>
</div>

span.wp-block-post-terms__separatorはカテゴリーブロックの設定にある、カテゴリーとカテゴリーの間を仕切るものになります。(今回は空白)

あとはCSSのほうでカテゴリー別の色を設定してデザイン調整すればOK

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
一杯おごる

-jQuery, WordPress
-