[WordPress] 投稿のカテゴリー選択をラジオボタンに変更し「よく使うもの」カテゴリーにチェックを入れておく方法
新規投稿時のカテゴリー選択を、チェックボックスからラジオボタンへ jQuery で変更するカスタマイズに、「よく使うもの」カテゴリーに選択されているものの、一番最初に表示されるカテゴリーにチェックを入れておくという機能をつける方法です。
デフォルトのカテゴリー選択は以下のようにチェックボックスになっていて、複数選択が可能です。
functions.php へコードを追加する
以下のコードを functions.php へ追加します。
function my_print_footer_scripts() { echo "<script type='text/javascript'> jQuery(document).ready(function($){ var checkLists = $('#categorychecklist').find('li'); var cnt = 0; checkLists.each(function(){ var check = $(this).find('input'); var input = $('<input>'); input.attr({ type: 'radio', id: check.attr('id'), name: check.attr('name'), value: check.val() }); if($(this).hasClass('popular-category') && cnt === 0){ input.prop('checked', true); cnt++ } input.insertBefore(check); check.remove(); }); }); </script>"; } add_action('admin_print_footer_scripts', 'my_print_footer_scripts', 21);
これで、ラジオボタンへ変更されカテゴリーを1つしか選択できなくなりました。「よく使うカテゴリー」になっているカテゴリーにもチェックが入っています。
このコードの説明
ラジオボタンを新たに作成し id・class などの属性を元のチェックボックスから取得し、新しいラジオボタンへその属性を設定します。
「よく使うもの」に設定されているカテゴリーにはリスト要素に「popular-category」という class が付与されているため、「popular-category」が付けられている要素が出現したら、checked 属性を true に設定しチェックします。ただ、「popular-category」は複数のカテゴリーに付けられるため、一番最初に表示される「popular-category」にのみチェックするようにします。
そして最後に元のチェックボックスは削除します。
以上のことを行っている jQuery コードを、admin_print_footer_scripts フックで管理画面の body 閉じタグ直前に書き出して jQuery を実行しています。
1 Comments & Tracbacks