我遇到了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?
谢谢。
答案 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。