isset或!为空以确定Wordpress数组是否包含内容


isset or !empty to determine if Wordpress array has content?

我正在为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/