如果有在用 in_category 這類參數做為判斷條件的人就會發現他判斷式是不包括該分類的子分類,如果說有要子分類文章也列入判斷條件的人可以看看以下官方提出的解決方法。

首先在你的佈景主題的 functions.php 檔案插入下面代碼(記得是插入在最後一行的 ?> 之前…)。

if ( ! function_exists( 'post_is_in_descendant_category' ) ) {
	function post_is_in_descendant_category( $cats, $_post = null ) {
		foreach ( (array) $cats as $cat ) {
			// get_term_children() accepts integer ID only
			$descendants = get_term_children( (int) $cat, 'category' );
			if ( $descendants && in_category( $descendants, $_post ) )
				return true;
		}
		return false;
	}
}

然後調用的參數寫法是:in_category( 'themes' ) || post_is_in_descendant_category(6)
上面的範例themes是指輸入該父分類的slug,再來後面的6是指該父分類的ID編號。

PS: 這可以運用在之前介紹過的 Widget Logic|側邊欄條件判斷顯示 外掛裡。

資料來源:http://codex.wordpress.org/Function_Reference/in_category

作者: Mr. 夫

唯有力量才能制衡一切,沒有力量什麼都保護不了,就連自身也難保...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *