【更新日 : 】
【WordPress】親記事も全て表示させるパンくずリスト
- Category:
- WordPress
WordPressで2階層以上の親記事も全て取得し、表示させるパンくずリストのサンプルです。
<ul class="topic-pass">
<li><a href="<?php echo esc_url( get_home_url() ); ?>/">TOP</a></li>
<?php
//記事の親ページIDを取得
$this_post_parent_id = $post->post_parent;
?>
<?php if($this_post_parent_id): ?>
<?php
//2階層以上の公開されている親ページを全て取得
$parent_topic_pass_list = array();
$roop_post_parent_id = $this_post_parent_id;
do {
$parent_post = get_post($roop_post_parent_id);
$parent_post_parent_id = $parent_post->post_parent;
if($parent_post_parent_id) {
if(get_post_status($parent_post_parent_id) === 'publish') {
$roop_post_parent_id = $parent_post_parent_id;
$parent_topic_pass_list[] = '<li><a href="'.get_permalink($parent_post_parent_id).'">'.get_the_title($parent_post_parent_id).'</a></li>';
} else {
$roop_post_parent_id = false;
}
} else {
$roop_post_parent_id = false;
}
} while ($roop_post_parent_id);
//取得した2階層以上の親ページを出力
if(!empty($parent_topic_pass_list)) {
$parent_topic_pass_list = array_reverse($parent_topic_pass_list);
foreach($parent_topic_pass_list as $value){
echo $value;
}
}
?>
<?php if(get_post_status($this_post_parent_id) === 'publish'): //公開されている記事のみ表示 ?>
<li><a href="<?php echo get_permalink($this_post_parent_id); ?>"><?php echo get_the_title($this_post_parent_id); ?></a></li>
<?php endif; ?>
<?php endif; ?>
<li><?php the_title(); ?></li>
</ul>