我有这些短代码,我在我的前端用作链接,以获取下一篇文章和上一篇文章。
当我到达最后一篇文章时,它只是不断地重新加载最后一篇文章。我怎样才能让它返回到第一个帖子?
function prev_shortcode($atts) {
$prev_post = get_previous_post();
$permalink = get_permalink($prev_post);
return ($permalink);
}
add_shortcode( \'prev\', \'prev_shortcode\' );
function next_shortcode($atts) {
$next_post = get_next_post();
$permalink = get_permalink($next_post);
return ($permalink);
}
add_shortcode( \'next\', \'next_shortcode\' );
SO网友:Jos Faber
get_next_post
退货null
如果没有帖子了。然后get_permalink
将具有空值$next_post
, 因此,它将获得当前帖子的永久链接,从而一次又一次地链接到同一帖子。
因此,您应该检查null
, 如果是,请链接到第一篇(最新)帖子。大致如下(以您的代码样式):
function next_shortcode( $atts ) {
$next_post = get_next_post();
if ( ! is_null($next_post) ) {
return get_permalink( $next_post );
}
$posts = get_posts( \'numberposts=1\' );
return $posts[0];
}