Random image loader

时间:2018-01-19 作者:rudtek

每次加载页面时,我都会尝试从我的孩子Theme images目录中加载一个随机图像。

我现在正在加载它作为一个短代码。这是我正在使用的代码:

function footer_image () {
   $imagesDir = get_stylesheet_directory_uri().\'/images/footer/\';
   $imagespec =  get_stylesheet_directory_uri().\'/images/footer/footer-fishing.png\'; //for testing

   $images = glob($imagesDir . \'*.{jpg,jpeg,png,gif}\', GLOB_BRACE);

   $randomImage = $images[array_rand($images)].\'there\';

   return $randomImage;//this returns nothing.
   return $imagespec; //this returns the correct url for the image
   return $imagesDir; //this returns the correct url for the images directory
}
add_shortcode (\'footer-image\', \'footer_image\');
最后我想用return$randomImage, 但在我的测试中,我已经注释掉了这一行,并单独添加了其他每个返回,以查看它们是否有效。他们都是。

看来我的$images$randomImage 变量

1 个回复
SO网友:benny-ben

试着看看这是否有效,我用scandir 因为我更喜欢它。问题是glob, 喜欢scandir, 仅适用于服务器文件系统上的路径,而不适用于URL:

function footer_image(){

    $imagesDir = get_stylesheet_directory() . \'/images/footer\';

    $imagesUri = get_stylesheet_directory_uri() . \'/images/footer/\';

    $images = array_diff( scandir( $imagesDir, 1 ), array( \'.\', \'..\' ) );

    $randomImage = $images[ array_rand( $images ) ];

    $footerImage = \'<img src="\' . $imagesUri . $randomImage . \'" alt="Footer image">\';

    return $footerImage;
}
add_shortcode ( \'footer-image\', \'footer_image\' );
要在页面/主题模板中使用短代码,请执行以下操作:

echo do_shortcode("[footer-image]");
请注意,如果您在媒体库中创建了分类法,例如footer 拍摄这些图像,你可以使用更多的属性(alt, description, size, 等),提高搜索引擎优化,使网站更具响应性。你觉得怎么样?

结束

相关推荐

WP_QUERY&SHORTCODE:从WordPress类别中返回3篇文章

我想用一个短代码显示“camping camping”类别的最后3篇文章,但该功能似乎无效,好吗?function derniers_articles_camping() { // the query $the_query = new WP_Query( array( \'category_name\' => \'location-camping-var\', \'posts_per_page\' => 3, ));