警告:为Portfolio-list.php中的Foreach()提供的参数无效

时间:2017-06-21 作者:Mary

我的WordPress主题有问题。

将特色图像上载到我的公文包项目后,我发现以下错误:

警告:在/home2/maryhtran/public\\u html/wp-content/themes/Motive/portfolio列表中为foreach()提供的参数无效。php在线150

这是导致在中发现错误的代码portfolio-list.php:

// Get the terms( categories ) for the portfolio item
$terms = get_the_terms( $post_item->ID, \'portfolio_categories\' );

foreach( $terms as $term ) {
// some code here
}
请有人帮助我理解为什么会发生这种情况,以及我如何修复此错误?

3 个回复
SO网友:Johansson

foreach() 由于没有返回任何术语,因此馈送了无效条目。要防止出现这种情况,请将循环包装在条件中:

// Get the terms( categories ) for the portfolio item
$terms = get_the_terms( $post_item->ID, \'portfolio_categories\' );
if(is_array($terms) || is_object($terms)){
    foreach( $terms as $term ) {
    // some code here
    }
}
现在,循环只会运行,只有帖子有一些术语。

SO网友:Rick Hellewell

错误在您的主题中。联系主题支持人员。这是提出与主题相关的问题的适当地方。

(但是,错误看起来像get_the_terms() 函数未返回数组,因此foreach 不起作用。)

这必须由主题作者确定。

SO网友:Sid

这将有点难以预测,但以下是一些您可以尝试的选项:

尝试回显帖子id以查看它实际上正在填充

结束

相关推荐

在特定页面上加载Header.php

(TL;DR 以下提供)我在使用Divi主题时遇到了一个问题。我正在使用Gravity表单插件生成一个具有多重上传的表单。这种多重上传似乎使用了Ajax,从我的小测试来看,这似乎与Divi相冲突。(我将CDN置于开发模式并停用了所有插件,上载按钮/拖放仍然不起作用)。这个问题的解决方案是删掉一些代码:gravity_form_enqueue_scripts( 2, true ); 开业前<?php 以及wp_head(); ?>. 然而,这与台式机上的全宽Divi头冲突。在某种意义