[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 を実行しています。

jQueryコードがbody 閉じタグ直前に書きだされているソースコード

Related Article

1 Comments & Tracbacks

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー トラブル コードサンプル コンテンツ スライドショー jQueryプラグイン php 引っ越し 素材 お知らせ JavaScript Facebook CSS カテゴリー 投稿タイプ IE HTML5 Shareボタン seo レスポンシブ Photoshop タクソノミー ナビゲーション カスタムメニュー Git Macアプリ サイドバー WPセキュリティ SVG iTunes PHPリファレンス API WP使い方 query_posts データベース get_posts() 条件分岐 コメント function RSS スマートフォン Sass/Compass さくらVPS