WordPressの投稿でカテゴリーを1つしか選択できないようにする方法

WordPressの投稿でカテゴリーを1つしか選択できないようにする方法

WordPressの投稿でカテゴリーを1つしか選択できないようにする方法
  • シェアしてね♪
  • このエントリーをはてなブックマークに追加

  • 広告主様募集中
    ワンコインで広告掲載してみませんか?
  • このエントリーをはてなブックマークに追加

WordPressのカテゴリーは、通常チェックボックスで選択するようになっているので、複数選択が可能です。しかし、カテゴリーを1つしか選択できないようにしたいというケースもあるかと思います。

チェックボックスを1つだけ選択するようにすればいいのですが、それだと誤操作などヒューマンエラーが発生する可能性があります。

そこで、チェックボックスからカテゴリーを1つしか選択できないように、WordPress側で制御してしまう方法を紹介したいと思います。

スポンサードリンク

カテゴリーの選択をラジオボタンに変更する

カテゴリーの選択をチェックボックスから、ラジオボタンに変更してしまう方法です。

functions.phpに以下を追加することで、カテゴリーがラジオボタンに変わります。

functions.php
function my_print_footer_scripts() {
echo '<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function($){
// 投稿画面のカテゴリー選択を制限
$(".categorychecklist input[type=checkbox]").each(function(){
$(this).replaceWith($(this).clone().attr("type","radio"));
});
// クイック編集のカテゴリー選択を制限
$(".cat-checklist input[type=checkbox]").each(function(){
$(this).replaceWith($(this).clone().attr("type","radio"));
});
});
//]]>
</script>';
}
add_action('admin_print_footer_scripts', 'my_print_footer_scripts', 21);

ラジオボタンに変更すれば、自ずと1つしか選択できなくなりますね。

チェックボックスのまま選択を制限する

もう1つは、チェックボックスのまま、選択を制限する方法です。functions.phpに以下を追加します。

functions.php
add_action( 'admin_print_footer_scripts', 'limit_category_select' );
function limit_category_select() {
?>
<script type="text/javascript">
jQuery(function($) {
// 投稿画面のカテゴリー選択を制限
var cat_checklist = $('#categorychecklist input[type=checkbox]');
cat_checklist.click( function() {
$(this).parents('#categorychecklist').find('input[type=checkbox]').attr('checked', false);
$(this).attr('checked', true);
});
// クイック編集のカテゴリー選択を制限
var quickedit_cat_checklist = $('.cat-checklist input[type=checkbox]');
quickedit_cat_checklist.click( function() {
$(this).parents('.cat-checklist').find('input[type=checkbox]').attr('checked', false);
$(this).attr('checked', true);
});
});
</script>
<?php
}

見た目はチェックボックスのままでも、1つしか選択はできなくなります。

あとがき

見た目的にも1つしか選択できないのがわかるので、ラジオボタンにする方が好ましいかもしれませんね。

なお、#categorychecklistや.categorychecklistなどのIDやクラスの部分を変更すれば、カスタムタクソノミーでも使えます。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。