我正在为Wordpress使用ACF Gallery插件,该插件生成一组图像数据。
它被称为:
$floorplans = get_field('floorplans');
我的问题是,有时,数组没有任何适当的内容,例如,如果我var_dump()
它,并且他们没有上传任何内容,我得到:
string(0) ""
如果存储在$floorplans
中的结果为空,我希望脚本跳过一些语句。
我试过:
if(!empty(get_field('floorplans'))){
...
}
但我的CCD_ 3中的语句仍然存在。
我试过了:
if(isset(get_field('floorplans'))){
...
}
我得到:
致命错误:无法对函数调用的结果使用isset()
于是我尝试了:
$floorplanCount = count(get_field('floorplans'));
if ($floorplanCount !== 0){
...
}
你猜对了,if
中的语句仍然通过
那么,如果我的floorplans
字段中没有任何内容,我怎么能不运行一段代码呢?
正如注释中所提到的,get_field
是罪魁祸首,也是为什么一个函数不应该返回多个数据类型(数组或字符串、数组或int等)的一个光辉例子,因为它迫使调用代码必须弄清楚返回了什么。
试试这个:
if (((true === is_array($floorplans)) && (count($floorplans) > 0)) || (false === empty($floorplans))) {
// Do work
}
根据acf库文档,您可以使用
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/