以下PHP代码不包括Google Merchant Center中的Woocommerce类别。您如何组合in_array
以缩短代码?
// Exclude categories from my Google Product Feed
function lw_gpf_exclude_product($excluded, $product_id, $feed_format) {
// Return TRUE to exclude a product, FALSE to include it, $excluded to use the default behaviour.
$cats = wp_get_post_terms( $product_id, 'product_cat', array( 'fields' => 'ids' ) );
if ( in_array( 60, $cats ) ) {
return TRUE;
}
if ( in_array( 63, $cats ) ) {
return TRUE;
}
if ( in_array( 88, $cats ) ) {
return TRUE;
}
if ( in_array( 89, $cats ) ) {
return TRUE;
}
return $excluded;
}
add_filter( 'woocommerce_gpf_exclude_product', 'lw_gpf_exclude_product', 11, 3);
答案 0 :(得分:2)
如果只有一个值足以返回true,则可以与两个数组相交,如果结果数组的大小(包含元素),则两个数组中至少存在一个值。
return count(array_intersect([60, 63, 88, 89], $cats)) > 0;
答案 1 :(得分:0)
使用array_intersect
函数的解决方案:
...
if (array_intersect([60, 63, 88, 89], $cats)){
return TRUE;
}
答案 2 :(得分:0)
试试这个。
return !empty(array_intersect(array(60,63,88,89),$cats));
答案 3 :(得分:0)
使用
in_array_any
这样的函数来缩短代码
function in_array_any($needles, $haystack) { return !!array_intersect($needles, $haystack); } if(in_array_any([60,63,88,89], $cats)){ return TRUE; }