【问题标题】:PHP — Testing Array ValuePHP — 测试数组值
【发布时间】:2015-02-01 07:47:28
【问题描述】:

我在 WordPress 的高级自定义字段中使用复选框。我只为它设置了一个值,即“是”的值

所以我设置了以下测试:

<?php if (!in_array('Yes', get_field('banner'))) : ?>

但是,对于那些没有指定值的帖子,我收到以下错误:

警告:in_array() 期望参数 2 是数组,布尔值在 /var/sites/d/dev-chwng.co.uk/public_html/wp-content/themes/chwng/loop-slideshow.php 第 19 行

我想是因为对于未选择“是”的项目,这反过来意味着没有设置名为“横幅”的数组

我尝试将整个内容放在 &lt;?php if (get_field('banner')) : ?&gt; 的语句中,以防止错误,但它会阻止脚本按我的需要工作(很难解释)。

有谁知道我如何在不引发错误的情况下确定“是”的值?

【问题讨论】:

  • 我的回答对你不起作用吗?
  • @rnevius 抱歉,由于某种原因我没有收到通知电子邮件,我会尽快检查并回复您!谢谢

标签: arrays wordpress checkbox conditional-statements advanced-custom-fields


【解决方案1】:

您还可以(首先)使用is_array() 验证它是一个数组:

<?php 
    $banner = get_field('banner');
    if ( is_array($banner) && !in_array('Yes', $banner) ) : ?>

如果get_field() 没有返回数组,这将使脚本立即转到else 语句。

【讨论】:

  • 谢谢,但不幸的是这不起作用。它可以防止错误,但由于 WP 插件的工作方式,它会停止循环按我的需要工作......不过还是谢谢!
【解决方案2】:

由于 WP 插件的工作方式,我似乎可以让它按照我的需要工作的唯一方法

&lt;?php if ( get_field('banner') == '' ) : ?&gt;

【讨论】:

    猜你喜欢
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2011-07-12
    相关资源
    最近更新 更多