如何使用动态标题插件在标题中显示随机图像?

时间:2012-01-12 06:41:21

标签: wordpress

我有自己的wordpress网站,我已经安装了动态标头插件。 我在“标题图片”目录中有5张图片。

我想在特定页面上随机显示5张图片中的3张?我该怎么做?

我在页面中选择了随机媒体标题,但它随机显示了所有5个图像。

我应该怎么做才能在我的页面上随机显示3张图片?

1 个答案:

答案 0 :(得分:1)

我认为插件默认不会这样做,但您可以尝试将以下功能添加到custom-header.php

function dh_get_random_media_item_filebased($files = array()){
    global $dhnd_image_dir;
    //Open the media directory and add all of the images to an array.
    if($media_dir = opendir($dhnd_image_dir)){
        while ($m_file = readdir($media_dir)) {
            if($m_file != "." && $m_file != ".." && in_array($m_file, $file)){
                $media_array[] = $m_file;
            }
        }
    }
    return $media_array[rand(0,count($media_array)-1)];
}

然后,当您致电dh_get_random_media_item_filebased()时,您需要指定您希望随机化的文件的名称:

$names = array('header1.jpg','header2.jpg','header3.jpg');
dh_get_random_media_item_filebased($names);

在您的主题page.php文件中,您可以执行以下操作:

global $post; //wordpress post global object
//
if($post->post_type == 'page'){
   $names = array();
   switch($post->post_name) {
     case 'sample-page':
         $names = array('image-1.jpg','image-2.jpg','image-3.jpg');
        break;
     case 'sample-page-2':
         $names = array('image-4.jpg','image-5.jpg');
        break;
     default:
         $names = array('image-1.jpg',
                        'image-2.jpg',
                        'image-3.jpg',
                        'image-4.jpg',
                        'image-5.jpg');
        break;     
   }
   $images = dh_get_random_media_item_filebased($names);
}

当然,您可以更改switch语句中的$post->post_name以检查和ID或类似$post->ID