Скрыть все карточки товаров у которых нет картинки
Всем привет, есть такая проблема. Используя код ниже я скрыл карточки товаров, без картинки, но на главной и в похожих товарах на странице товара ничего не изменилось. Как это можно сделать?
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $query ) {
$query->set( 'meta_query', array( array(
'key' => '_thumbnail_id',
'value' => '0',
'compare' => '>'
)));
}
Ответы (1 шт):
Автор решения: Valerii Vasiliev
→ Ссылка
Можно сделать через событие pre_get_posts - оно будет срабатывать на все запросы на WP_Query
function custom_pre_get_products_query( $query ) {
if( !is_admin() && in_array ( $query->get('post_type'), array('product') )) {
$meta_query = $query->get('meta_query');
if (!is_array($meta_query)) $meta_query = [];
$meta_query[] = [
'key' => '_thumbnail_id',
'value' => '0',
'compare' => '>'
];
$query->set('meta_query', $meta_query);
}
}
add_action( 'pre_get_posts', 'custom_pre_get_products_query', 10, 2 );
Выполняем только для публичной части и проверяем наличие в запросе post_type == product (тип товаров woocoommerce)