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

如何解决WordPress调试post_content非对象报错及锚点跳转滚动异常问题

问题根因

你遇到的PHP报错是aThemes Blocks插件的代码逻辑缺陷导致的:代码在读取全局$post对象的post_content属性前,没有判断$post是否为有效的WP_Post对象。当站点首页是自定义首页、最新文章列表页这类没有初始化全局文章对象的场景时,$post为NULL,调用$post->post_content就会抛出Notice。

如果站点开启了调试模式显示错误,这个Notice会提前输出内容破坏页面结构,同时中断后续脚本加载逻辑,导致视差和平滑滚动相关的脚本没有正常加载,这就是锚点点击跳变不流畅的根本原因。

解决方案

临时修复方案(直接修改插件代码,快速生效)

找到路径wp-content/plugins/athemes-blocks/classes/class-athemes-blocks-init.php的第121行,在原有判断前新增$post有效性校验,修改后的代码段如下:

global $post;
// 新增$post有效性判断,避免非对象报错
if ( is_a( $post, 'WP_Post' ) && strpos( $post->post_content, 'parallax' ) !== FALSE ) {
    wp_enqueue_script( 'athemes-blocks-parallax' );
} else {
    // 原有第123行及之后的逻辑保持不变

修改后保存文件,清空站点缓存即可生效。缺点是后续插件更新会覆盖修改,需要重新操作。

永久兼容方案(推荐,不受插件更新影响)

将以下代码添加到当前使用的Botiga主题的functions.php文件末尾即可,会自动替换插件有缺陷的脚本加载逻辑:

// 提前移除插件有问题的脚本挂载逻辑
add_action( 'wp_enqueue_scripts', function() {
    remove_action( 'wp_enqueue_scripts', [ 'aThemes_Blocks_Init', 'enqueue_scripts' ], 10 );
}, 9 );

// 重写兼容的视差脚本加载逻辑
add_action( 'wp_enqueue_scripts', function() {
    if ( is_admin() || is_customize_preview() ) {
        wp_enqueue_script( 'athemes-blocks-parallax' );
        return;
    }

    global $post;
    $load_parallax = false;

    // 仅当$post为有效文章对象时才校验内容
    if ( is_a( $post, 'WP_Post' ) ) {
        $load_parallax = strpos( $post->post_content, 'parallax' ) !== false;
    }

    // 文章内容未找到匹配则校验区块小工具
    if ( !$load_parallax ) {
        $block_widgets = get_option( 'widget_block' );
        if ( $block_widgets ) {
            foreach ( $block_widgets as $block_widget ) {
                if ( isset($block_widget['content']) && strpos( $block_widget['content'], 'wp:athemes/' ) !== false && strpos( $block_widget['content'], 'parallax' ) !== false ) {
                    $load_parallax = true;
                    break;
                }
            }
        }
    }

    if ( $load_parallax ) {
        wp_enqueue_script( 'athemes-blocks-parallax' );
    }
}, 10 );

滚动效果修复说明

PHP报错修复后,平滑滚动依赖的视差脚本可以正常加载,锚点点击的跳变问题会同步解决。如果修复后仍存在滚动异常,可以检查主题自定义设置中是否开启了平滑滚动选项,同时排查是否有其他JS脚本冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:54:03