在WordPress的第一页上创建PHP上一页按钮

时间:2016-07-18 22:19:06

标签: php html wordpress

我有这个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页,反之亦然,但我无法解决这个问题。任何帮助表示赞赏。

1 个答案:

答案 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变量替换为我们创建的第一个页面。希望这有帮助!