WordPressで子タームにチェックを入れたら親タームにも自動的にチェックが入るようにする

  1. 手順
  2. parent-check.js
  3. functions.php

「子カテゴリーにチェックを入れたら親カテゴリーにも自動でチェックが入るようにする」方法はありましたが、タームの場合はちょっと一工夫にが必要でした。

参考本:WordPress 親カテゴリーを自動チェックする

手順

  1. parent-check.jsを作成
  2. 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を使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。


アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!

やまライダーのサイトへ

書いた人:やまライダー(嫁)

Web屋さんで8時間フルタイム勤務をしている、いわゆるワーキングマザー。
夫婦共働きで、ムスメ氏を育てています。
主に資産運用にかかわるお金の話、ムスメ氏を育てていく上での子育ての話、そしてたまにお仕事関連の記事を書いていく予定。
プロフィールを見る