Invalid Argument foreach

时间:2019-12-27 作者:Daddio

这是因为Wordpress、PHP还是主题?(或某些组合)

我的一个客户有一个Wordpress网站,多年来一直运行良好,但最近在其侧栏中出现以下错误:

警告:为/wp content/themes/epsilon/page threecolumn中的foreach()提供的参数无效。php第29行

我一直认为这可能与Wordpress和PHP的升级有关。不再支持主题。下面是该区域的代码:

                <div class="col-234">
                    <div class="sidebar left-sidebar">
                            <?php
                            $leftsidebar = simple_fields_get_post_group_values($post->ID, "Left Sidebar", false, 2);
                            foreach ($leftsidebar as $value) { 
                            ?>
                            <aside>
                                <h2> <?php echo $value[1]; ?></h2>
                                <div>
                                <?php
                                    if($value[2]):
                                        if (function_exists(\'cforms_insert\')){ 
                                            echo cforms_insert(do_shortcode($value[2])); 
                                        } else { 
                                            echo do_shortcode($value[2]); 
                                        } 
                                    endif;
                                ?>
                                </div>
                            </aside>
                            <?php } ?>
                    </div>
                </div>
我没有建立这个网站。虽然我精通纯HTML,但我对PHP知之甚少。这只是一个可以通过一些快速修复来解决的语法问题吗?还是我需要出去安装一个全新的主题(这让我很害怕)?

2 个回复
SO网友:Daviid

simple\\u fields\\u get\\u post\\u group\\u值可能返回null或false。

尝试添加:

$leftsidebar = simple_fields_get_post_group_values($post->ID, "Left Sidebar", false, 2);
echo "<!--".print_r($leftsidebar)."-->";
并检查页面的来源以查看返回的内容。

SO网友:cstrouse

由于简单字段已从插件目录中删除,您应该考虑使用高级自定义字段(ACF)或类似工具重新创建自定义字段,然后修改模板以使用新字段。注册字段时保持字段名称不变,这应该是一个非常简单的修复方法。