投稿タイプのトップを判定

ワードプレス

しょっちゅう使う処理だけど、テンプレートタグもなさそうなので関数化。

ソース(functions.php)

/* ---------- 投稿タイプトップの判定 ---------- */
if( !function_exists( 'is_post_type_top' ) ) {
	function is_post_type_top(){
		if( is_home() ){
			return true;			
		}elseif( is_archive() ){
			if( is_category() || is_tag() || is_tax() || is_date() || is_month() || is_year() || is_author() ){
				return false;
			}else{
				return true;
			}
		}else{
			return false;
		}
	}
}

is_archive()でtrueになるケースのうち、

ターム、年月日、著者「では無い」場合に「true」になる。

出力例

<?php
/* ---------- 投稿タイプの説明文 ---------- */
if( is_post_type_top() && get_post_type_object( get_post_type() )->description ){
	echo '<div class="posttype-lead site-content site-width"><div class="inner">';
	echo '<p>' . get_post_type_object( get_post_type() )->description . '<p>';
	echo '</div></div>';
}
?>

投稿タイプのトップアーカイブにだけ「投稿タイプの詳細(description)」を出力する例。