显示媒体库中的一个随机图像

时间:2020-05-08 作者:Newbie

我在问是否可以从媒体库中获取所有图像,并在每次刷新页面时随机显示其中一个图像。

我认为这就像是制作一个媒体库图像数组(php),然后调用其中一个,尽量不请求不必要的请求

我想我是新来的,我不知道如何开始。有人能帮我吗?

谢谢

1 个回复
SO网友:Niraeth

由于缺乏声誉,我无法发表评论,因此我将解决rudtek提到的问题。就我个人而言,我从来没有遇到过禁用PHP的rand()函数的主机,但如果有这样一个糟糕的主机,您可以选择一种更有效的方式。您可以做的是获取所有图像id,并从可用列表中选择一个随机id。这样可以大大减少内存占用和cpu使用。请参见下面的代码示例

// get all image ids available
$image_ids = get_posts( 
    array(
        \'post_type\'      => \'attachment\', 
        \'post_mime_type\' => \'image\', 
        \'post_status\'    => \'inherit\', 
        \'posts_per_page\' => -1,
        \'fields\'         => \'ids\',
    ) 
);
// based on the number of image_ids retrieved, generate a random number within bounds.
$num_of_images = count($image_ids);
$random_index = rand(0, $num_of_images);
$random_image_id = $image_ids[$random_index];
// now that we have a random_image_id, lets fetch the image itself.
$image = get_post($random_image_id);

// you can do whatever you want with $image now.
上面的代码应该没有任何问题,但如果您希望显示所选的随机图像,则必须进一步处理。如果您不需要必要的编程技能才能使其正常工作,我可能会尽快编写一个低占用空间的解决方案。

或者,应该有插件来做你想做的事情,只是它们可能确实太臃肿了。还请注意,如果库中有数千个或更多图像,则性能可能会受到严重影响。