WordPressの投稿画面で、カテゴリーを1つのみ選択させるようにしたい場合がたまにあるので、ラジオボタンに変更する方法を調べました。
サンプルコード
変更しない場合は以下のような表示になっています。
投稿画面でJavaScriptを使用して、チェックボックスをラジオボタンに書き換えます。
functions.php
<?php function change_category_to_radio() { ?> <script> jQuery(function($) { // カテゴリーをラジオボタンに変更 $('#categorychecklist input[type=checkbox]').each(function() { $(this).replaceWith($(this).clone().attr('type', 'radio')); }); // 「新規カテゴリーを追加」を非表示 $('#category-adder').hide(); // 「よく使うもの」を非表示 $('#category-tabs').hide(); }); </script> <?php } add_action( 'admin_head-post-new.php', 'change_category_to_radio' ); add_action( 'admin_head-post.php', 'change_category_to_radio' );
カテゴリーの選択をラジオボタンに変更するのに合わせて、「よく使うもの」タブで複数選択ができてしまうので非表示にしています。
また、「新規カテゴリーを追加」でチェックボックスにチェックされた状態でカテゴリーが追加できてしまうため、こちらも非表示にして対応しました。
変更後、以下のような表示になりました。
【参考サイト】
- 投稿画面のカテゴリーをセレクトボックスにしたりラジオボタンにしたり。 | web.contempo.jp
- WordPressのカスタムタクソノミーのチェックボックスをラジオボタンにする方法 – モンキーレンチ
コメントが承認されるまで時間がかかります。