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

  • facebook
  • このエントリーをはてなブックマークに追加
  • Twitter
  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');

前の記事

WordPressのアップローダーからIllustratorデータ(拡張子ai)をアップロードする

次の記事

jquery.heightLine.jsをbxSliderで使い、カルーセル表示で要素の高さを揃える方法