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

WordPress电商站Facebook for WooCommerce插件ID读取警告求助

排查Facebook for WooCommerce插件的ID读取警告问题

问题根源

警告Warning: Attempt to read property "ID" on int的核心原因是:$wp_query->posts数组中混入了整数类型元素,而非预期的WP_Post对象,导致代码尝试在整数上读取ID属性时触发错误。

解决方案

1. 临时应急:屏蔽警告输出

如果需要快速隐藏警告(不解决根源),可在wp-config.php文件中添加以下代码:

define('WP_DEBUG_DISPLAY', false);

2. 修复插件代码逻辑(直接修改)

修改facebook-commerce-events-tracker.php第207行附近的代码,增加类型校验,过滤无效元素:

$products = array_values(
    array_filter(
        array_map(
            function( $item ) {
                // 仅处理WP_Post对象,避免非对象类型报错
                if ( is_object( $item ) && property_exists( $item, 'ID' ) ) {
                    return wc_get_product( $item->ID );
                }
                return null;
            },
            $wp_query->posts
        ),
        // 过滤掉null值,保留有效产品
        fn( $product ) => $product !== null
    )
);

注意:直接修改插件文件会在插件更新时被覆盖,建议后续通过自定义钩子(如woocommerce_product_query)调整查询,或等待官方修复。

3. 排查第三方干扰

  • 插件冲突检测:禁用所有非必要插件,仅保留WooCommerce和Facebook for WooCommerce,验证警告是否消失,逐步恢复插件找到冲突源。
  • 主题冲突检测:切换到WooCommerce默认主题(如Storefront),排查主题是否通过pre_get_posts等钩子篡改了主查询的返回结果。
  • 自定义代码检查:检查主题functions.php或自定义插件中是否有修改$wp_query->posts数组的代码。

4. 升级插件版本

确认Facebook for WooCommerce插件为最新版本,旧版本可能存在已知的查询兼容性bug,升级后大概率能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:10:32