wordpress in_array是否认为数组是布尔值?

gstyhher  于 2023-06-21  发布在  WordPress
关注(0)|答案(1)|浏览(101)

我最近更新了一个WP网站从PHP 7.4到8.1,现在得到一个错误:
致命错误:未捕获的类型错误:in_array():参数#2($haystack)必须是数组类型,bool给定
令人不快的一行是:

if (in_array($cat->cat_ID, get_sub_field('category'))) {

站点使用ACF,类别子字段的输出为:
数组([0] => 1)
所以看起来in_array现在认为这是一个布尔值?最好的解决方法是什么?

xwbd5t1u

xwbd5t1u1#

建议将子字段存储到一个变量中,这将允许您在对其执行操作之前测试类型。

$category = get_sub_field( 'category' );

if ( is_array( $category ) && in_array( $cat->cat_ID, $category ) ) {
   ...
}

绝对建议检查子字段的值是在管理中设置的,然后还检查 meta值以确认。

相关问题