我正在使用ACF Gallery plugin生成一系列图像数据的Wordpress。
它被称为:
$floorplans = get_field('floorplans');
我的问题是,有时,阵列没有任何适当的内容,例如,如果我var_dump()
它并且他们没有上传任何内容,我得到:
string(0) ""
如果$floorplans
中存储的结果为空,我希望脚本跳过某些语句。
我试过了:
if(!empty(get_field('floorplans'))){
...
}
...但我的if
中的陈述仍然存在。
我试过了:
if(isset(get_field('floorplans'))){
...
}
我得到了:
致命错误:无法对函数调用的结果使用isset()
然后我尝试了:
$floorplanCount = count(get_field('floorplans'));
if ($floorplanCount !== 0){
...
}
你猜对了,if
中的陈述仍然过去了。
那么,如果floorplans
字段中没有任何内容,我怎么能不运行一段代码?
答案 0 :(得分:2)
正如评论中所提到的get_field
是罪魁祸首,也是函数不应该返回多种数据类型(数组或字符串,数组或int等)的一个光辉的例子,因为它会强制调用复杂性代码必须弄清楚返回的内容。
试试这个:
if (((true === is_array($floorplans)) && (count($floorplans) > 0)) || (false === empty($floorplans))) {
// Do work
}
答案 1 :(得分:1)
根据acf gallery文档,您可以使用
if($floorplans)
{
//your statements goes here
}
这是链接。 http://www.advancedcustomfields.com/resources/gallery/
你不能使用isset的原因是,如果存在任何东西,get_field函数返回数组,否则它将返回false或0(我不确定,但即使它是0或false,$ floorplan变量应该无缝地工作在我上面提到的if语句中)
以下是更多文档:http://www.advancedcustomfields.com/resources/get_field/