通过wordpress中的一系列页面循环

时间:2012-12-18 01:42:37

标签: php arrays wordpress loops

我遇到了wordpress的这个功能。它显示了一个浏览页面的链接。

如果页面是A,则下一页是B

如果页面为B,则下一页为C,上一页为A

如果页面是C,那么前一页是B

function siblings($link) {
  global $post;
  $siblings = get_pages('child_of='.$post->post_parent.'&parent='.$post->post_parent);
  foreach ($siblings as $key=>$sibling){
    if ($post->ID == $sibling->ID){
        $ID = $key;
    }
}
$closest = array('before'=>get_permalink($siblings[$ID-1]->ID),'after'=>get_permalink($siblings[$ID+1]->ID));

if ($link == 'before' || $link == 'after') { 
    echo $closest[$link]; }
else { 
    return $closest; }
}

但是,当它达到C时,“下一个”链接仍为C.当页面为A时,“上一个”链接仍为A.

如何修改它,所以当它是A时,“上一个”链接是C,当它是C时,“下一个”链接是A?

谢谢。

1 个答案:

答案 0 :(得分:0)

我想以下面的方式重写它,它应该做你想要的:

$last_item = end( $siblings );

$before = ( $ID-1 > 0 ) ? get_permalink( $siblings[$ID-1]->ID ) : get_permalink( $last_item->ID );
$after = ( $ID+1 < count( $siblings ) )  ? get_permalink( $siblings[$ID+1]->ID ) : $siblings[0]->ID;

$closest = array( 'before' => $before, 'after' => $after );

在哪里?是ternary operator