📜  wordpress php 查询随机化 - PHP (1)

📅  最后修改于: 2023-12-03 15:21:12.992000             🧑  作者: Mango

WordPress PHP 查询随机化

在 WordPress 中,我们可以使用 WP_Query 类来查询帖子,页面等内容。有时我们需要随机展示一些帖子或页面,这时我们就需要使用随机化查询。

使用 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() 函数进行随机化查询。根据具体情况选择不同的方式来实现随机化查询。