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>