我正在尝试在WordPress网站上显示随机选择的背景图片。我的策略是内联style
元素的<html>
属性,如下所示:
<html style="background:#e8e6da url(<?php
$bg_imgs = glob(get_template_directory().'/backgrounds/*.jpg');
shuffle($bg_imgs);
echo $bg_imgs[0]; ?>) left top fixed">
在我的本地服务器上,输出
<html style="background:#e8e6da url(C:\xampp\htdocs\mysite/wp-content/themes/my_theme/backgrounds/paper2.jpg) left top fixed">
...浏览器不喜欢它,因为它要求获取本地资源。即使一旦网站上线,这不会是一个问题,我只需要一个相对路径到图像文件。
所以我准备使用substr()
来删除路径中不需要的部分,但我不能确定,取决于部署站点的位置,get_template_directory()
将返回什么。我不想对可能有所不同的任何内容进行硬编码。
返回相对于网站网址的随机图片路径的最佳策略是什么?如果有更好的东西,我很乐意抛弃上述情况。
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以尝试获取文档根目录并将其从完整路径的开头删除:
$docRoot_len = strlen($_SERVER['DOCUMENT_ROOT']);
$bg_imgs = glob(get_template_directory().'/backgrounds/*.jpg');
shuffle($bg_imgs);
echo substr($bg_imgs[0], $docRoot_len);
我知道这不是万无一失的 - 这只是一个想法。