📅  最后修改于: 2023-12-03 15:21:12.992000             🧑  作者: Mango
在 WordPress 中,我们可以使用 WP_Query 类来查询帖子,页面等内容。有时我们需要随机展示一些帖子或页面,这时我们就需要使用随机化查询。
我们可以使用 WP_Query 类中的 orderby
参数和 rand
函数来实现随机化查询。具体代码如下:
$args = array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => 5,
);
$random_query = new WP_Query( $args );
if ( $random_query->have_posts() ) {
while ( $random_query->have_posts() ) {
$random_query->the_post();
// 展示帖子或页面
}
}
wp_reset_postdata();
上面的代码中,我们将 post_type
参数设置为 post
,表示要查询的是帖子。orderby
参数设置为 rand
,表示要随机化查询。posts_per_page
参数设置为 5
,表示查询 5 条记录。
除了使用 WP_Query 类的 orderby
参数和 rand
函数进行随机化查询外,还可以使用 MySQL 的 RAND()
函数,具体代码如下:
global $wpdb;
$random_posts = $wpdb->get_results( "SELECT ID FROM " . $wpdb->posts . " WHERE post_type = 'post' AND post_status = 'publish' ORDER BY RAND() LIMIT 5" );
if ( $random_posts ) {
foreach ($random_posts as $post) {
setup_postdata($post);
// 展示帖子或页面
}
wp_reset_postdata();
}
上面的代码中,我们使用了 WordPress 的全局变量 $wpdb
,通过调用 get_results
方法实现了随机化查询。SELECT ID FROM " . $wpdb->posts . "
表示查询 ID
字段,WHERE post_type = 'post' AND post_status = 'publish'
表示查询类型为 post
并且状态为 publish
的记录,ORDER BY RAND()
表示随机排序,LIMIT 5
表示查询 5 条记录。
使用 WP_Query 类进行随机化查询是 WordPress 开发中的常用技巧。我们可以通过设置 orderby
参数和使用 rand
函数实现随机化查询,也可以使用 MySQL 的 RAND()
函数进行随机化查询。根据具体情况选择不同的方式来实现随机化查询。