首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WooCommerce:获取最新产品并随机对它们进行排序(部分)

WooCommerce:获取最新产品并随机对它们进行排序(部分)
EN

Stack Overflow用户
提问于 2020-09-06 09:55:23
回答 1查看 121关注 0票数 2

我想得到最后20个帖子(在我的例子中是WooCommerce产品),并以随机顺序显示其中的10个。

现在我得到了这样的新职位:

代码语言:javascript
复制
$args = array(
    'post_type'                     => 'product',
    'orderby'                       => 'date',
    'order'                         => 'DESC',
    'posts_per_page'                => 20,
);

我知道我可以得到这样的随机顺序:

代码语言:javascript
复制
'orderby'                       => 'rand',
'posts_per_page'                => 10,

但如何将这两者结合起来呢?有办法存储第一个循环中的帖子并在第二个循环中使用它们吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-06 10:10:15

有几种方法可以做到这一点,这是其中之一

  • (A) -检索一些最近的帖子。
  • 洗牌(数组&$数组):bool -这个函数对数组进行洗牌(随机化元素的顺序)。它使用的伪随机数生成器不适合用于加密目的。
  • 接合 -移除数组的一部分并用其他东西替换它
代码语言:javascript
复制
$recent_posts = wp_get_recent_posts( array(
    'numberposts' => 20, // Number of recent posts
    'post_status' => 'publish', // Show only the published posts
    'post_type'   => 'product'
));

// array_splice ( array, offset, length )
$sub = array_splice( $recent_posts, 10, 10 );

// Random
shuffle( $sub );

array_splice( $recent_posts, 10, 0, $sub );

// Loop
foreach( $recent_posts as $post ) {
    echo $post['ID'] . '<br>';
    //echo '<pre>', print_r( $post, 1), '</pre>';
}

wp_reset_query();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63762872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档