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

WordPress单篇文章模板:隐藏首尾文章的上/下一篇按钮并解决报错

解决WordPress单篇文章上/下一篇按钮报错并隐藏无内容按钮的方法

问题根源

当处于第一篇或最后一篇文章时,get_previous_post()或get_next_post()会返回null,但你的代码未将后续HTML输出逻辑包裹在条件判断内,直接访问$prev->ID或$next->ID就会触发“Attempt to read property 'ID'”警告。

修复后的PHP代码

将上一篇/下一篇的完整HTML结构放入if判断块中,确保仅存在对应文章时才渲染按钮:

<div id="post-nav" class="navigation">
    
    <?php 
    $prevPost = get_previous_post(true); 
    if($prevPost) {
        $prev = get_adjacent_post(true,'',true);
    ?>
    <div class="col_nav">               
        <a href="<?php echo get_permalink($prev->ID);?>">
            <div class="nav_bar_1">
                <div class="nav_text_1">Vorheriger Beitrag:
                    <p><?php echo get_the_title($prev->ID );?></p>
                </div>
            </div>
        </a>
        <div class="nav_pic">   
            <?php $prevthumbnail = get_the_post_thumbnail($prevPost->ID ); previous_post_link("$prevthumbnail", TRUE); ?>
        </div>
    </div>
    <?php } ?>
    
    <?php 
    $nextPost = get_next_post(true); 
    if($nextPost) {
        $next = get_adjacent_post(true,'',false);
    ?>
    <div class="col_nav">       
        <a href="<?php echo get_permalink($next->ID);?>">
            <div class="nav_bar_2">
                <div class="nav_text_2">Nächster Beitrag:
                    <p><?php echo get_the_title($next->ID );?></p>
                </div>
            </div>
        </a>
        <div class="nav_pic">
            <?php $nextthumbnail = get_the_post_thumbnail($nextPost->ID ); next_post_link("$nextthumbnail", TRUE); ?>
        </div>
    </div>
    <?php } ?>

</div>

核心修改点

  • 把if($prevPost)改为包裹整个上一篇按钮的HTML块,无对应文章时完全不渲染该部分
  • 同理处理下一篇按钮的条件判断,避免空值访问
  • 将$prev和$next的定义移至if内部,仅在需要时执行查询,优化性能

可选样式优化

如果希望单侧按钮存在时占满整个宽度,可添加CSS规则:

/* 单个导航按钮时占满100%宽度 */
#post-nav .col_nav:only-child {
    width: 100%;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:23:19