WordPressでAdvanced Custom Fieldプラグインを使用する際にカテゴリ選択をラジオボタンにしたい
カスタム投稿でAdvanced Costom Fieldを使用してカテゴリ別にカスタムフィールドを作った後、
そのカテゴリ選択をチェックボックスでなくラジオボタンでやりたいと思いました。
やり方をざっと調べると、主に
・PS Taxonomy Expanderプラグイン使う方法
・function.phpで処理する方法、
・coreを直接書き換える方法
があるようです。
この中でどれを使うかということですが、PS Taxonomy Expanderは試してみたところ、
なんかACFと相性が悪い感じでした。またcoreの書き換えはできるだけやりたくなかったので、
消去法でこちらを参考に
js使ってhtmlを書き換える処理をfunction.phpに持たせてやることにしました。
そんでカスタム投稿画面を見ると、おお、カテゴリ選択がラジオボタンになってますw
しかしどーやら今回使用するACFバージョン4.1.6では、カテゴリ選択はチェックボックスでないとうまく動かないようです。
ラジオボタンを切り替えてもカテゴリ別に作成したカスタムフィールド項目が変更されません。
このカスタムフィールドは、カテゴリ変更があった際にAjaxで動的に項目変更するようですが、
おそらくそのトリガにtype=checkboxを使っているのでしょう。
んで探してみると、ありましたw
場所は、/wp-content/plugins/advanced-custom-fields/js/input/ajax.js の220行目付近、
$(‘.categorychecklist input[type=”checkbox”]’).live(‘change’, function(){
// vars
var values = [];
$(‘.categorychecklist input[type=”checkbox”]:checked’).each(function(){
values.push( $(this).val() );
});
というとこです。
この中に2か所あるtype=”checkbox”をtype=”radio”に変更してやるとうまく動きましたw
株式会社ギャップ・ジャパン
売り上げランキング: 8,398