Правильное использование is_product_category()
20 июн. 2018 г., 14:16:47
Просмотры: 19.8K
Голосов: 1
У меня есть две категории товаров:
- МНОГОЯЗЫЧНЫЙ ЦИФРОВОЙ МАРКЕТИНГ (ID 75)
- МЕЖДУНАРОДНЫЕ КАНАЛЫ ПРОДАЖ (ID 107)
Я хочу выполнить определенный код через условие if только для этих двух категорий.
Я попробовал использовать этот код, но он не сработал
if( is_product_category(107 || 75) ) {
// Получаем текущий объект запроса
$term = get_queried_object();
$parent = $term->parent;
if (!empty($parent)) {
$child_of = $parent;
} else {
$child_of = $term->term_id;
}
$terms = get_terms( array(
'taxonomy' => 'product_cat',
'child_of' => $child_of,
) );
if ($terms) {
foreach ( $terms as $category ) {
$category_id = $category->term_id;
$category_slug = $category->slug;
$category_name = $category->name;
$category_desc = $category->description;
echo '<div class="'.$category_slug.'">';
echo '<h2>'.$category_name.'</h2>';
if ($category_desc) {
echo '<p>'.$category_desc.'</p>';
}
$products_args = array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $category_id,
),
),
);
$products = new WP_Query( $products_args );
if ( $products->have_posts() ) { // начинаем только если есть товары
// НАЧАЛО стандартного цикла woocommerce
woocommerce_product_loop_start();
if ( wc_get_loop_prop( 'total' ) ) {
while ( $products->have_posts() ) : $products->the_post();
/**
* Хук: woocommerce_shop_loop.
*
* @hooked WC_Structured_Data::generate_product_data() - 10
*/
do_action( 'woocommerce_shop_loop' );
wc_get_template_part( 'content', 'product' );
endwhile; // конец цикла.
}
woocommerce_product_loop_end();
// КОНЕЦ стандартного цикла woocommerce
// Восстанавливаем оригинальные данные поста, возможно не нужно здесь (в плагине может быть необходимо)
wp_reset_postdata();
}

Nimesh Deo
71
Все ответы на вопрос
3
0
is_product_category()
следует использовать только на архивных страницах категорий WooCommerce, поэтому сначала убедитесь, что вы находитесь на архивной странице категории.
вместо номера категории используйте её слаг (slug) is_product_category('category-slug')
нет необходимости использовать условие ИЛИ(||), просто используйте is_product_category('category-slug1','category-slug2')
для получения того же результата

Shamsur Rahman
591
20 июн. 2018 г. 14:46:31
Похожие вопросы
3
ответов