お問い合わせはコチラから

Gutenbergで管理画面のタグをチェックボックス化する方法

サイト運営

WordPressの編集画面でタグをつける時に、カテゴリのようにタグをチェックボックスで選択したいと思う人は多いと思います。

WordPressのタグをチェックボックス化する方法は検索すると簡単に見つかりますが、Gutenbergに対応していなかったり、そもそもやり方に説明が無く、応用が利きません。

この記事では、Gutenbergに対応したタグのチェックボックス化の方法をご紹介します。この記事を読むことで誰でも簡単に編集画面のタグをチェックボックス化することができます。

Gutenbergはタグをチェックボックス化する機能に対応していない

WordPressの標準的な方法でタグをチェックボックス化する方法として、 register_taxonomy関数のオプションを使う方法があります。

タグをチェックボックス化するregister_taxonomy関数のオプション

register_taxonomyのオプションにmeta_box_cbがあります。このオプションを使うことでタグをチェックボックス化することができます。

meta_box_cbとは?

コールバック関数を指定します。

バージョン3.8以降で使用可能で、メタボックスの表示に使用されるコールバック関数名を指定できます。
メタボックスとは、記事投稿画面の右サイドバーにある、「カテゴリー」や「タグ」などのボックスを示します。
hierarchicalがtrueのタクソノミーの場合は、カテゴリーでも使用されている「post_categories_meta_box()」(meta-boxes.php内に記述有)が使用されます。hierarchicalがfalseのタクソノミーの場合は、タグでも使用されている、「post_tags_meta_box()」が使用されます。
「meta_box_cb」にfalseを設定すると、メタボックスは何も表示されません。

初期値:null

meta_box_cbの設定

'meta_box_cb' => 'post_categories_meta_box'

このオプションを指定するだけで、クラシックエディタを使う場合はタグをチェックボックス化することができます。

hierarchicalの設定

'hierarchical'=> true, というオプションを指定すべし、という記事をよく見かけますが、meta_box_cbを指定すれば不要です。

Gutenbergを使う場合は、meta_box_cbオプションは無視されます。Gutenbergを使う場合はhierachicalオプションが必要です。

'hierarchical' => true

ClassicエディタとGutenbergのどちらでもタブをチェックボックス化できるオプション設定

ClassicエディタとGutenbergのどちらでもタブをチェックボックス化できるオプション設定

Classicエディタでは、’meta_box_cb’ => ‘post_categories_meta_box’だけ必要

Gutenbergでは、’hierarchical’ => trueだけ必要

つまり、両方設定しておけばどちらもタブをチェックボックス化できます。

  • ‘meta_box_cb’ => ‘post_categories_meta_box’
  • ‘hierarchical’ => true

register_taxonomyを使って再設定する方法

function.phpに以下のコードを張り付けることで、 classicエディタとGutenbergでタグをチェックボックス化することができます。

function _re_register_post_tag_taxonomy() {
	
	$tag_slug_args = get_taxonomy('post_tag'); // returns an object
	$tag_slug_args -> hierarchical = true;
	$tag_slug_args -> meta_box_cb = 'post_categories_meta_box';
	
	register_taxonomy( 'post_tag', 'post',(array) $tag_slug_args);

}
add_action( 'init', '_re_register_post_tag_taxonomy', 1 );

まとめ

タグをチェックボックス化する方法は、検索するといろいろ出てきますが、今回ご紹介した方法は記述量が少なく、カスタムタクソノミーにも対応できますので、おすすめです。

タイトルとURLをコピーしました