【基本Tips】ワードプレス:カテゴリーを一つだけ選択させる
ワードプレスのカテゴリーを1つだけ選択させるには、jQueryで制御することで可能となります。
カテゴリーを1つだけ選択させる方法には、2つの方法があります。
カテゴリー選択をラジオボタンにする
カテゴリー選択をチェックボックスからラジオボタンに変更すると、カテゴリーは1つしか選択できなくなります。
ただし、この方法は「子カテゴリー」とその「親カテゴリー」も選択したい場合は使えません。
jQueryでチェックボックをラジオボタンに変更するので、functions.phpに下記コードを記載します。
functions.php
function category_radio() {
?>
<script>
jQuery(function($) {
$('#categorychecklist
input[type=checkbox]').each(function() {
$(this).replaceWith($(this).clone().attr('type', 'radio'));
});
});
</script>
<?php
}
add_action( 'admin_head-post-new.php', 'category_radio' );
add_action( 'admin_head-post.php', 'category_radio' );
カテゴリーを1つだけ選択させる
カテゴリーを1つだけ選択させたいが「親カテゴリー」も選択させたい場合に使える方法です。
jQueryで制御するので、下記コードをfunctions.phpに記載します。
functions.php
function category_one_select() {
?>
<script type="text/javascript">
jQuery(function($) {
var categorydiv = $( '#categorydiv input[type=checkbox]' );
categorydiv.click( function() {
$(this).parents( '#categorydiv' ).find( 'input[type=checkbox]' ).attr('checked', false);
$(this).attr( 'checked', true );
});
var inline_edit_col_center = $( '.inline-edit-col-center input[type=checkbox]' );
inline_edit_col_center.click( function() {
$(this).parents( '.inline-edit-col-center' ).find( 'input[type=checkbox]' ).attr( 'checked', false );
$(this).attr( 'checked', true );
});
});
</script>
<?php
}
add_action( 'admin_print_footer_scripts', 'category_one_select' );
ワードプレスの環境に合わせて使い分けてください。