我的网站上的Woocommerce中有不同类别的标题。
我正在使用in_array函数检查数组的产品类别字符串。在使用get_template_part函数向页面输出不同的标头之前。
此代码工作正常,最近才随机发布。开始显示PHP错误消息'警告:in_array()期望参数2为数组,在'。
中给出null。 // Gets the product categories to loop over and out put based on scenario below.
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
if ( is_front_page() ) {
get_template_part( '/includes/header/header', 'front' );
} elseif ( in_array( 'courses', $categories ) ) {
get_template_part( '/includes/woocommerce/headers/woocommerce', 'single' );
} elseif ( in_array( 'services', $categories ) ) {
get_template_part( '/includes/woocommerce/headers/woocommerce', 'services' );
} elseif (is_product_category() || is_shop()) {
get_template_part( '/includes/woocommerce/headers/woocommerce', 'archive' );
}
else {
get_template_part( '/includes/header/header', 'with-menus' );
}
答案 0 :(得分:6)
您需要在foreach运行之前将$categories
初始化为空数组:
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
$categories = array();
foreach ( $terms as $term ) $categories[] = $term->slug;
[...]
如果$terms
为空,则表示您有空数组 $categories
并且您没有收到此错误。