Чтобы поднять товар определенной категории вверх на странице категории в WordPress (с использованием плагина WooCommerce), вам потребуется внести некоторые изменения в код вашей темы.
1. Создайте и активируйте дочернюю тему WordPress. Это позволит вам внести изменения в код без изменения основной темы, что обеспечит безопасность и сохранит ваши изменения в случае обновления темы.
2. Откройте файл functions.php вашей активной дочерней темы для редактирования.
3. Добавьте следующий код в файл functions.php:
// Перемещение товаров определенной категории вверх на странице категории WooCommerce function move_category_products_up() { if (is_product_category()) { $category = get_queried_object(); // Получаем объект категории $category_id = $category->term_id; // Получаем ID категории $args = array( 'post_type' => 'product', 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => $category_id, ), ), 'meta_key' => 'menu_order', // Поле для сортировки товаров 'orderby' => 'meta_value_num', // Сортировка по числовому значению поля 'order' => 'ASC', // Сортировка по возрастанию ); $products = new WP_Query($args); if ($products->have_posts()) { $menu_order = 0; // Начальное значение для поля сортировки while ($products->have_posts()) { $products->the_post(); $menu_order += 1; $product_id = get_the_ID(); // Обновляем значение поля сортировки товара update_post_meta($product_id, 'menu_order', $menu_order); } } wp_reset_postdata(); } } add_action('woocommerce_before_shop_loop', 'move_category_products_up');
4. Сохраните файл functions.php и обновите ваш сайт.
Теперь, когда вы посетите страницу категории WooCommerce, товары определенной категории будут отображаться вверху списка, основанные на их порядке сортировки. В этом коде мы использовали функцию move_category_products_up
, которая сначала получает текущую категорию, а затем находит все товары этой категории. Далее она обновляет значение поля сортировки для каждого товара, чтобы переместить их вверх на странице категории.
Обратите внимание, что в этом примере мы используем стандартное поле "menu_order" для сортировки товаров. Если вы используете другое поле, вам необходимо указать его в аргументе 'meta_key' и указать правильный ключ сортировки.