こんにちは。レジット代表の浅井です。
ご好評につき、制作案件が増えてきております。
リピート率100%!!感謝致します。
忙しくて制作に関するブログがアップされていないので、今回はワードプレスで困ったお話です。
WordPressで投稿記事が属するカテゴリーを表示するパンくず
弊社、ブログをご覧になって気付いた方もいらっしゃると思いますが、実はうまく表示ができている時とできていない時がありましたw
ちなみに、うまく行っていなかったソースは以下です。
1 |
<?php $cat = get_the_category(); echo get_category_parents($cat[0], true, ' » '), 'この記事'; ?> |
WordPressで投稿記事が属するカテゴリーを取得する get_the_category は、属するカテゴリーをカテゴリーの名前順で取得してくるようです。
それが原因でget_category_parents がうまく反応しないことがわかりました。
正しいパンくずリストを表示する方法
参考サイト:http://ja.forums.wordpress.org/topic/8095
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<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(1,2,3); /*親カテゴリ名を取得*/ 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"; } ?> |
困ったらやっぱりフォーラムですね。
この記事を書いた人
浅井 脩太郎代表取締役
バスケット、フットサル、ゴルフ、スノボに将棋やチェス。多趣味のため、常にお金がない。 学生時代、地層に興味を持ち『土木』を学ぶ。社会人では、苦手分野である『IT』の世界へ。良き上司、良き先輩、良き同期、良き後輩に恵まれ、楽しい時間を過ごす。コンサルティング業務、システム開発では上流工程から下流工程のすべての業務に従事。 2013年、株式会社レジット創業。