同一级别的 WordPress 下一个和上一个链接(自定义 Post 类型)

WordPress Next and Previous Links (Custom Post Type) in same level

我想在同一级别添加下一页和上一页链接。

我在 WordPress codex 中找到了所有页面(子页面和父页面)的解决方案:https://codex.wordpress.org/Next_and_Previous_Links#The_Next_and_Previous_Pages

但我想要的是同级导航。

有什么解决办法吗?

编辑:

<?php
        $pagelist = get_pages('post_type=publikation&sort_column=menu_order&sort_order=asc');
        $pages = array();
        foreach ($pagelist as $page) {
           $pages[] += $page->ID;
        }

        $current = array_search(get_the_ID(), $pages);

        $testPost = (get_pages( array( 'post_type' => 'publikation' ,'child_of' => $post->ID ) ) || $post->post_parent);

        $prevID = $pages[$current-1];
        $nextID = $pages[$current+1];
        ?>

        <div class="navigation">
        <?php if (!empty($prevID) && !$testPost) { ?>
        <div class="alignleft">
        <a href="<?php echo get_permalink($prevID); ?>"
          title="<?php echo get_the_title($prevID); ?>">Previous</a>
        </div>
        <?php }
        if (!empty($nextID) && !$testPost) { ?>
        <div class="alignright">
        <a href="<?php echo get_permalink($nextID); ?>"
         title="<?php echo get_the_title($nextID); ?>">Next</a>
        </div>
        <?php } ?>
        </div><!-- .navigation -->`

这个呢...

在您引用的代码中:

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

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

<div class="navigation">
<?php if (!empty($prevID)) { ?>
<div class="alignleft">
<a href="<?php echo get_permalink($prevID); ?>"
  title="<?php echo get_the_title($prevID); ?>">Previous</a>
</div>
<?php }
if (!empty($nextID)) { ?>
<div class="alignright">
<a href="<?php echo get_permalink($nextID); ?>" 
 title="<?php echo get_the_title($nextID); ?>">Next</a>
</div>
<?php } ?>
</div><!-- .navigation -->

编辑这个...

<?php if (!empty($prevID)) { ?>

... 检查 post 是当前 post 的父项还是子项。

<?php 

$testPost = (get_pages( array( 'child_of' => $post->ID ) ) || $post->post_parent);

if (!empty($prevID) && !$testPost) { ...

if (!empty($nextID) && !$testPost) { ...

我知道这个主题已有 5 年历史,但我遇到了同样的问题并找到了一个简单的解决方案。如果有人也在处理这个问题,我会在这里分享它。

您只需要将 get_pages(); 更改为 get_posts(); :

        $pagelist = get_posts('post_type=publikation&sort_column=menu_order&sort_order=asc');