<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否

function haup_display_child_categories_by_parent($atts) {
	$atts = shortcode_atts( array(
		'parentid' => '', // 親カテゴリーのIDを指定
		'hideparent' => '', // 親カテゴリーのリンクを表示するか
		'hidenull' => '',//紐づくコンテンツのないカテゴリーを表示するか
	), $atts, 'child_categories' );

	$message = __('There is no parent category with the specified ID','hima-art-utility');

	if($atts['hidenull'] !== '1'){
		$hide_null = '0';
	}else{
		$hide_null = '1';
	}

	$parent_category = get_term_by('id', $atts['parentid'], 'category');

	if ($parent_category) {
		$child_categories = get_categories( 
			array(
				'child_of' => $parent_category->term_id,
				'hide_empty' => $hide_null,
			)
		);

		//親カテゴリーの情報を取得
		$parent_link = get_category_link( $parent_category->term_id );
		$parent_name = $parent_category->name;
		$parent_count = $parent_category->count; 


		$output = '';
		$output .= '<ul class="haup-cat-list-ul">';

		//親カテゴリーのリンクを表示する場合
		if($atts['hideparent'] !== '1'){
			$output .= '<li class="haup-cat-list-li">';
			$output .= '<a href="'. $parent_link .'">';
			$output .= $parent_name .'&nbsp;(&nbsp;'.$parent_count.'&nbsp;)';
			$output .= '</a>';
			$output .= '</li>';
		}

		foreach ($child_categories as $child_category) {
			$link = get_category_link( $child_category->term_id );
			$name = $child_category->name;
			$count = $child_category->count; 

			$output .= '<li class="haup-cat-list-li">';
			$output .= '<a href="'. $link .'">';
			$output .= $name .'&nbsp;(&nbsp;'.$count.'&nbsp;)';
			$output .= '</a>';
			$output .= '</li>';
		}

		$output .= '</ul>';

		return $output;
    
	} else {
		return $message;
	}
}
add_shortcode('ha-cat-list', 'haup_display_child_categories_by_parent');