【WordPress】タグも管理画面で投稿時にチェックボックスにするには

ITエンジニアリング

記事投稿時に、カテゴリはチェックボックスで表示されているので、選択しやすいですが、タグって、テキスト入力ですよね。

クライアント案件で、カテゴリとは違う属性でカテゴリを横断してグルーピングしたい時にはよく使用するタグ機能です。

しかし、タグ項目はある程度決まっていて、カテゴリのように選択したいのに、テキスト入力だとユーザビリティが非常に悪い。

そんなお困りないですか?

この記事では、フリーテキスト入力だと起こってしまう弊害と、解決方法をお教えします。

結果からいうと、function.phpにコピペしてもらうだけで一発解決します。

フリー入力で起こる弊害

まず、フリー入力だと何が悪いか。

ユーザビリティ(使い勝手)の低下

これは、使い方によりますが経験上、受託案件でカスタム投稿タイプ実装の場合に起こりがちです。

例えば、アパレルショップ。

トップスや、アウターなどは階層で分けられるのでカテゴリ機能を使用します。

  • アウター
  • トップス
  • パンツ
  • 小物 など

そのカテゴリを横断するようなグルーピングが必要な場合、タグ機能を使用します。

  • 2022年秋冬
  • 新春SALE
  • ブラックコーデ など

そうなると、設定したいタグ名は決まっていて、商品登録時などに、チェックを入れるだけでタグも選択したい。

でも、フリー入力だとタグ名を覚えておかないといけない。

なので、カテゴリと同じようにチェックボックスで選択できる方が使い勝手がいいということになります。

入力のブレによって、意味の重複したタグが沢山できる

タグは、検索に使用できて便利なのですが、

・2021年秋冬

・2021年秋冬

みたいに、意味は一緒なのに全角と半角が違うだけで、違うタグ扱いとなります。

タグの絞り込みを利用して、SALEバナーなどを設置しても、設定したリンクに登録したはずの商品が表示されないなど、問題が発生します。

人によって、全角半角、大文字小文字、言葉を伸ばす伸ばさないなど様々な違いが発生するため、ルールを決めないといけなくなります。

これだけでルールを設けるより、そもそもチェックボックスに変えた方が良くね?

ってなりますよね。

function.phpに追記で一発解決

これは、簡単に解決します。

function.phpの最後に以下をコピペしてください。

(一応function.phpは重要ファイルですので、気をつけてください)

/* 投稿画面にタグ一覧をチェックボックスで表示する */
function post_tag_to_checkbox() {
$args = get_taxonomy('post_tag');
$args -> hierarchical = true;
$args -> meta_box_cb = 'post_categories_meta_box';
register_taxonomy( 'post_tag', 'post', $args);
}
add_action( 'init', 'post_tag_to_checkbox', 1 );

◯Gutenberg用

trueにするとチェックボックス、falseにするとテキスト入力

$args -> hierarchical = true;

◯Classicエディタ用

UIを切り替えるmeta_box_cbをチェックボックスに変えるパラメータを渡す

$args -> meta_box_cb = 'post_categories_meta_box';

本来、Classicエディタの方だけでいけばいいのですが、ブロックエディタ(Gutenberg)にはまだ対応されてないのかなーと思います。

Before

After

カスタムタクソノミーでもOK

これは、カスタムタクソノミーの場合でも使用できます。

/* カスタムタクソノミーをチェックボックスにする */
function term_to_checkbox() {
  $args = get_taxonomy('customblog-tag');
  $args -> hierarchical = true;
  $args -> meta_box_cb = 'post_categories_meta_box';
  register_taxonomy( 'customblog-tag', 'customblog', $args);
}
add_action( 'init', 'term_to_checkbox', 999 );

「customblog-tag」は、タクソノミー名、「customblog」はカスタム投稿タイプ名に置き換えてください。

まとめ

いかがでしたでしょうか。

結構簡単に切り替えられますね。

タグは、便利なので効率的に導入したいところです。

これで、タグ重複もなくなりますし、使い勝手もいいです。

ぜひお試しください。