[WordPress] 投稿のカテゴリー選択をラジオボタンに変更し「よく使うもの」カテゴリーにチェックを入れておく方法

[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プラグイン Facebook php 引っ越し お知らせ JavaScript カテゴリー Shareボタン CSS IE 投稿タイプ seo Photoshop レスポンシブ Macアプリ ナビゲーション タクソノミー HTML5 WPセキュリティ Git カスタムメニュー サイドバー PHPリファレンス SVG API query_posts WP使い方 RSS iTunes データベース コメント function 条件分岐 get_posts() スマートフォン Sass/Compass マルチサイト機能