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を使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。
アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!