每次加载页面时,我都会尝试从我的孩子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
变量
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
, 等),提高搜索引擎优化,使网站更具响应性。你觉得怎么样?