函数背后的函数背后的函数&hellip
next_post_link();
是的包装器
adjacent_post_link();
然后调用
get_adjacent_post();
其中,3rd参数为
$previous
并设置为
true/false
获取上一篇或下一篇文章。
这给了您两个机会:使用输出或查询过滤器。
输出过滤器这听起来可能更简单,但您必须对此进行额外的查询。
// The core:
$adjacent = $previous ? \'previous\' : \'next\';
echo apply_filters( "{$adjacent}_post_link", $format, $link );
// Add your callbacks like this:
add_filter( \'previous_post_link\', \'your_callback_fn\', 20, 2 );
add_filter( \'next_post_link\', \'your_callback_fn\', 20, 2 );
这是我建议您的:检查是否有
$post->post_parent
设置并修改查询,以获取具有下一个更高id且具有相同父级的帖子。
// The core:
$adjacent = $previous ? \'previous\' : \'next\';
$join = apply_filters( "get_{$adjacent}_post_join", $join, $in_same_cat, $excluded_categories );
$where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare("WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = \'publish\' $posts_in_ex_cats_sql", $current_post_date, $post->post_type), $in_same_cat, $excluded_categories );
$sort = apply_filters( "get_{$adjacent}_post_sort", "ORDER BY p.post_date $order LIMIT 1" );