WordPress Snippet

ワードプレスをカスタマイズしよう

指定したカテゴリの子カテゴリの表示

get_the_categoryで取得したカテゴリ(複数)の表示順序の変更

<dl>

<?php
	$args	=array('orderby'=> 'ID');
	$terms	= wp_get_post_terms( $post->ID , 'category', $args);
	$html	= '<dd>:<a href="%1$s" title="%2$s">%3$s</a></dd>';
	$colon	= array();
	$result	= array();
	/*表示したいIDを列挙*/
	$ids	= array(19,1);
	
	foreach($terms as $key=>$term){
	
		foreach($ids as $id){
			if($key== 0){
				//loopの最初
				$result[$id]= '<dt>'.get_category_parents($id, true,'').'</dt>';
				$colon[$id]= false;
			
			}
			if(cat_is_ancestor_of($id, $term)){
				
				$result[$id] .= sprintf(	$html,
						esc_url(get_term_link($term, 'category')),
						sprintf( __( "%s" ), esc_attr($term->name)),
						esc_html($term->name)
				);
				$coron[$id]= true;
			}
			if($key== count($terms) - 1){
				//loopの最後
				
				if($coron[$id]== false){
					$result[$id] .= '<dd>:</dd>';
				}
			}
		}	
	}
	
	array_walk($result, 'print_named_array');
	
	function print_named_array($item, $key){
 	echo $item."\n";
	}
?>
</dl>

[emulsion_relate_posts]