0

我遇到了 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 ?

谢谢你。

4

1 回答 1

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 );

在哪里 ?是三元运算符

于 2012-12-18T03:06:59.773 回答