同じ親を持つ固定ページで前後リンクをつける

投稿ページでは前後の記事へのリンクを表示する為のテンプレートタグがありますが、固定ページでは機能しません。

同じ親ページを持つ固定ページで前後リンクをつけたいと思い調べました。

<?php
$pagelist = get_pages('sort_column=menu_order&sort_order=asc');
$pages = array();
foreach ($pagelist as $page) {
	$pages&#91;&#93; += $page->ID;
}

$current = array_search(get_the_ID(), $pages);
$prevID = $pages[$current-1];
$nextID = $pages[$current+1];

$ancestors = get_post_ancestors( $post );
$ancestor = ( $ancestors ) ? $ancestors[count( $ancestors ) - 1] : $post->ID;

$prev_ancestors = get_post_ancestors( $prevID );
$prev_ancestor = ( $prev_ancestors ) ? $prev_ancestors[count( $prev_ancestors ) - 1] : $prevID;

$next_ancestors = get_post_ancestors( $nextID );
$next_ancestor = ( $next_ancestors ) ? $next_ancestors[count( $next_ancestors ) - 1] : $nextID;

?>

<div class="navigation">
<?php if ($prev_ancestor == $ancestor):?>
<a href="<?php echo get_permalink($prevID); ?>"
  title="<?php echo get_the_title($prevID); ?>"><?php echo get_the_title($prevID); ?></a> &lt;&lt;
<?php endif;?>

<?php if ($next_ancestor == $ancestor):?>
&gt;&gt; <a href="<?php echo get_permalink($nextID); ?>" 
 title="<?php echo get_the_title($nextID); ?>"><?php echo get_the_title($nextID); ?></a>
<?php endif;?>
</div><!-- .navigation -->

参考:
https://ja.wordpress.org/support/topic/%E5%9B%BA%E5%AE%9A%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%A7%E5%90%8C%E3%81%98%E8%A6%AA%E3%81%AE%E5%89%8D%E5%BE%8C%E3%83%AA%E3%83%B3%E3%82%AF%EF%BC%88%E5%AD%AB%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%82%82/

Comments

コメントする