我有这个PHP代码,可以很好地显示箭头到WordPress子页面的上一页/下一页:
<?php // Button Code for Prev and Next Page
$my_wp_query = new WP_Query();
$all_wp_pages = $my_wp_query->query(
array('post_type' => 'page'));
$portfolio = get_page_by_title('Services');
$args = array (
'child_of' => $portfolio->ID,
'sort_order' => 'asc',
'post_type' => 'page'
);
$portfolio_children = get_pages( $args );
$pages = array();
foreach ($portfolio_children as $page) {
$pages[] += $page->ID;
}
$current = array_search($post->ID, $pages);
$prevID = $pages[$current-1];
$nextID = $pages[$current+1];
?>
<div class="navigation">
<?php if (!empty($prevID)) { ?>
<div class="previousarrow">
<a href="<?php echo get_permalink($prevID); ?>" title="<?php echo get_the_title($prevID); ?>">
<img src="<?php bloginfo('url');?>/wp-content/uploads/2016/06/previousbutton.png">
</a>
</div>
<?php }
if (!empty($nextID)) { ?>
<div class="nextarrow">
<a href="<?php echo get_permalink($nextID); ?>" title="<?php echo get_the_title($nextID); ?>">
<img src="<?php bloginfo('url');?>/wp-content/uploads/2016/06/nextbutton.png">
</a>
</div>
<?php } ?>
</div>
问题是,在第一页和最后一页上,我无法显示上一个/下一个按钮以转到最后一个或第一个页面。子页面。
实施例 A(父母)
1(儿童第1页)
2(儿童第2页)
3(儿童第3页)
我希望第1页上的上一个选项转到第3页,反之亦然,但我无法解决这个问题。任何帮助表示赞赏。
答案 0 :(得分:0)
按钮没有出现,因为php if参数,它消除了第1页上的上一个箭头和第3页上的下一个箭头,因为它将它们识别为空。解决这个问题的一种方法是删除if子句并使用if语句来定义prevID和nextID变量,或者只需在每个if语句定义要显示的上一个/下一个按钮后添加else语句。但是,这两种解决方案都是暂时的,因为您需要页面数量才能实现它们,这可能会有所变化。相反,使用此代码可确保即使您添加其他页面,此功能也将保持不变:
<?php if (empty($prevID)) { $firstpage = $pages[$current]; }
if (empty($nextID)) {$lastpage = $pages[$current]; }
这将定义第一页和最后一页的值,并且可以在定义prevID和nextID后简单地插入。现在只需添加如下所示的php else语句:
</div> <?php }
else { ?>
<div class="previousarrow>
<a href="<?php echo get_permalink($lastpage); ?>"
title="<?php echo get_the_title($lastpage); ?>">
<img src="<?php bloginfo('url');?>
/wp-content/uploads/2016/06/previousbutton.png"></a></div>
<?php }
此代码块将在您的第一个div类之后插入,因为前一个箭头应该导航到没有上一个页面时的最后一页。在第二个div类之后执行完全相同的操作,将lastpage变量替换为我们创建的第一个页面。希望这有帮助!