WooCommerceで商品一覧を出すときに、li の各productにcssクラスを付与していた(post_class hookを利用)のに、WooCommerceをアップデート後、使えなくなっていた。
このclassを使ってfilterしていたので、これが消えるとまずい。
原因
調査したところ、WooCommerceプラグインのこの部分の変更が原因でした(最下部):
wp-plugin-api.com バージョン間ファイル比較
改修前:
add_filter( 'post_class', 'tbs_product_class', 10, 3 ); function tbs_product_class( $classes, $class, $post_id ){ if( in_array( 'product', $classes ) ){ $concerns = get_the_terms( $post_id, 'product_concerns' ); if( $concerns ){ foreach( $concerns as $concern ){ $classes[] = 'product_concern_' . $concern->term_id; } } } return $classes; }
改修後 (WooCommerce 3.7対応):
add_filter( 'woocommerce_post_class', 'tbs_product_class', 30, 2 ); function tbs_product_class( $classes, $product ){ // product post id: $product->get_id() if( in_array( 'product', $classes ) ){ $concerns = get_the_terms( $product->get_id(), 'product_concerns' ); if( $concerns ){ foreach( $concerns as $concern ){ $classes[] = 'product_concern_' . $concern->term_id; } } } return $classes; }
たしかに、post_class が使われているプラグイン一覧に、WooCommerce 3.7.* が入っていない。