Подскажите, как заменить нижеприведённый код вызова шорткода на аналогичный код, в котором используется WP_Query? Сам цикл я смогу построить на основе полученных данных из бд. Но как задать правильно запрос в базу данных, чтобы выбрать товары из категории sale_products или товары из product_category?
echo do_shortcode('[product_category category="computers"]'); или echo do_shortcode('[sale_products per_page="12"]');
Цикл, в общем-то обычный WordPress, с учетом того, что тип поста - products
, и не категории, а таксономии. Свойства товара (например, цена распродажи) содержатся в мета-полях.
Для теста создана пустая страница, использующая файл шаблона. В файле шаблона:
<?php
/*
Template Name: woo-test-632707
*/
echo '<h2>Товары категории "Фильмы"</h2>';
$args = array(
'post_type' => 'product',
'product_cat' => 'фильмы',
'posts_per_page' => -1
);
$wc_query = new WP_Query($args);
if ($wc_query->have_posts()) {
while ($wc_query->have_posts()) {
$wc_query->the_post();
?>
<p><?php the_title(); ?></p>
<?php
}
wp_reset_postdata();
}
else {
?>
<p><?php echo 'No Products'; ?></p>
<?php
}
echo '<h2>Товары на распродаже</h2>';
$args = array(
'post_type' => 'product',
'meta_key' => '_sale_price',
'meta_value' => '0',
'meta_compare' => '>=',
'posts_per_page' => 12
);
$wc_query = new WP_Query($args);
if ($wc_query->have_posts()) {
while ($wc_query->have_posts()) {
$wc_query->the_post();
?>
<p><?php the_title(); ?></p>
<?php
}
wp_reset_postdata();
}
else {
?>
<p><?php echo 'No Products'; ?></p>
<?php
}
?>
Результат здесь.
Подскажите пожалуйста ещё по этому шорткоду:
echo do_shortcode('[best_selling_products per_page="12"]'); я делаю так: $args = array( 'post_type' => 'product', 'posts_per_page' => 12, 'meta_key' => 'total_sales', 'orderby' => 'meta_value_num', ); $wc_query = new WP_Query($args); if ($wc_query->have_posts()) { while ($wc_query->have_posts()) { $wc_query->the_post(); woocommerce_product_loop_start(); wc_get_template_part( 'content', 'product' ); woocommerce_product_loop_end(); } } wp_reset_postdata();
но дело в том, что магазин находится ещё в разработке, а самые продаваемые товары уже выводятся в результате этого кода. Ведь товары ещё не продавались. Правильно ли я вывожу самые продаваемые товары?
ПриветствуюЕсли тут есть знатоки этого микро-фреймворка, буду признателен за помощь
Нужно реализовать таймаут в 1 секунду в циклеПробовал через setTimeout, но не пошло
Есть ли способ узнать количество итераций функции setInterval без использования дополнительной переменной?