同一级别的 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');
我想在同一级别添加下一页和上一页链接。
我在 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');