You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中通过文章ID获取上一篇/下一篇文章链接

解决方案:按文章ID排序生成前后篇链接

因为WordPress默认的previous_post_link和next_post_link是按发布日期排序,当大量文章日期相同时会出现匹配错误。我们可以通过自定义函数,强制按文章ID(自增字段)来获取前后篇,再生成对应链接。

步骤1:添加自定义函数到主题

将以下代码添加到你的WordPress主题的functions.php文件中:

// 获取上一篇(按ID降序,取ID更小的最近一篇)
function get_previous_post_by_id($current_id) {
    $query = new WP_Query(array(
        'post_type' => get_post_type($current_id),
        'posts_per_page' => 1,
        'post_status' => 'publish',
        'orderby' => 'ID',
        'order' => 'DESC',
        'post__not_in' => array($current_id),
        'ID' => '<' . $current_id
    ));
    return $query->have_posts() ? $query->posts[0] : false;
}

// 获取下一篇(按ID升序,取ID更大的最近一篇)
function get_next_post_by_id($current_id) {
    $query = new WP_Query(array(
        'post_type' => get_post_type($current_id),
        'posts_per_page' => 1,
        'post_status' => 'publish',
        'orderby' => 'ID',
        'order' => 'ASC',
        'post__not_in' => array($current_id),
        'ID' => '>' . $current_id
    ));
    return $query->have_posts() ? $query->posts[0] : false;
}

步骤2:替换模板中的原有代码

把你当前使用的前后篇代码替换为以下内容:

<div class="prev">
    <?php 
    $prev_post = get_previous_post_by_id(get_the_ID());
    if ($prev_post) {
        echo '<a href="' . get_permalink($prev_post->ID) . '">' . get_the_title($prev_post->ID) . '</a>';
    } else {
        echo '无上一篇'; // 可根据需要修改默认提示
    }
    ?>
    &nbsp;
</div>
<div class="next">
    <?php 
    $next_post = get_next_post_by_id(get_the_ID());
    if ($next_post) {
        echo '<a href="' . get_permalink($next_post->ID) . '">' . get_the_title($next_post->ID) . '</a>';
    } else {
        echo '无下一篇'; // 可根据需要修改默认提示
    }
    ?>
    &nbsp;
</div>

说明

  • 自定义函数通过WP_Query直接按ID筛选,确保前后篇按文章ID的先后顺序匹配(ID是WordPress自动递增的,导入的文章ID顺序通常和导入顺序一致)。
  • 保留了你原来的prev和next类名,不会影响原有样式。
  • 如果没有前后篇,可以修改默认提示文本(比如留空或替换成其他内容)。

内容的提问来源于stack exchange,提问作者redibis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:15:35