Woocommerce - Ребята, я пытаюсь отобразить 3 случайных продукта, но пропускаю первые 3 последних добавленных продукта. - PullRequest
1 голос
/ 30 июня 2019

Мне нужна твоя помощь. Я пытаюсь отобразить 3 случайных продукта, но пропускаю первые 3 последних добавленных продукта. Самое последнее значение не по запросу, а по глобальной дате создания продукта.

Вот код, который я использую для отображения случайных продуктов.

$args = array(
'post_type'         => 'product',
'orderby'           => 'rand',
'posts_per_page'    => 3,
);

$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;
}

Добавление 'смещения' пропускает только первые 3 случайных числа. Есть ли способ пропустить первые 3 последних добавленных продукта?

1 Ответ

1 голос
/ 30 июня 2019

Сначала получите три последних продукта и получите их идентификаторы, используя wp_get_recent_posts функцию и идентификаторы карты, затем добавьте post__not_in аргумент к WP_query с этими тремя идентификаторами поста

$recent_posts = wp_get_recent_posts([
    'post_type'   => 'product',
    'numberposts' => 3
]);

$last_three_posts = array_map(function($a) { return $a['ID']; }, $recent_posts);

$args = array(
    'post_type'         => 'product',
    'orderby'           => 'rand',
    'posts_per_page'    => 3,
    'post__not_in'      => $last_three_posts,
);

$loop = new WP_Query( $args );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...