跳到主要内容

非常简单-Astra文章导航限定在当前分类内

· 阅读需 1 分钟

要实现在当前分类内导航,需要在获取上下篇文章时添加 in_same_term 参数。只需修改一个true;

修改了这两行:

  • get_next_post(true)
  • get_previous_post(true)

以下是修改后的代码:

注意

有问题,暂未解决

add_filter( 'astra_single_post_navigation', 'astra_change_next_prev_text' );
function astra_change_next_prev_text( $args ) {
$next_post = get_next_post(true); // true表示仅在同一分类中获取
$prev_post = get_previous_post(true); // true表示仅在同一分类中获取

$next_text = false;
if ( $next_post ) {
$next_text = sprintf(
'%s <span class="ast-right-arrow">→</span>',
$next_post->post_title
);
}

$prev_text = false;
if ( $prev_post ) {
$prev_text = sprintf(
'<span class="ast-left-arrow">←</span> %s',
$prev_post->post_title
);
}

$args['next_text'] = $next_text;
$args['prev_text'] = $prev_text;
return $args;
}

现在导航只会显示同一分类下的文章。如果需要指定某个分类法(taxonomy),可以使用完整参数:

get_next_post(true, '', 'category'); // 第三个参数指定taxonomy
get_previous_post(true, '', 'category');