WordPressで子タームにチェックを入れたら親タームにも自動的にチェックが入るようにする
「子カテゴリーにチェックを入れたら親カテゴリーにも自動でチェックが入るようにする」方法はありましたが、タームの場合はちょっと一工夫にが必要でした。
手順
- parent-check.jsを作成
- functions.phpに追記
parent-check.js
チェックボックスを制御するためのJSファイル「parent-check.js」を作成します。
jQuery(function($) { $('#taxonomy-[タクソノミー名].children input').change(function() { function parentNodes(checked, nodes) { parents = nodes.parent().parent().parent().prev().children('input'); if(parents.length != 0) { parents[0].checked = checked; parentNodes(checked, parents); } } var checked = $(this).is(':checked'); $(this).parent().parent().siblings().children('label').children('input').each(function() { checked = checked || $(this).is(':checked'); }) parentNodes(checked, $(this)); }); });
仮にタクソノミー名が「tax_cat」の場合、2行目の指定は「$('#taxonomy-tax_cat.children input')」となります。
ここが「ターム」の時のポイントです。
カテゴリーの場合は「$('#taxonomy-category .children input')」となります。
ちなみに、Chromeを使用中でしたらデベロッパーツールから確認できます。
functions.php
投稿画面でparent-check.jsを呼び出す指定をfunctions.phpに追記します。
function category_parent_check_script() { wp_enqueue_script('parent-check', get_template_directory_uri().'/js/parent-check.js', array('jquery')); } add_action('admin_print_scripts-post.php', 'category_parent_check_script'); add_action('admin_print_scripts-post-new.php', 'category_parent_check_script');
MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。
アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!