我在我的服务器上使用WP 3.5.1,二十二个子主题和PHP 5.2。 我试图使用PHP脚本(适用于我的其他网站),以获得随机背景图像,但它不起作用:
CSS:
body {
background: url(<?php include ("bg.php"); echo $selectedBg; ?>) no-repeat fixed;
}
PHP:
<?php
$bg = array('1.jpg','2.jpg','3.jpg','4.jpg','5.jpg');
$i = rand(0, count($bg)-1);
$selectedBg = "$bg[$i]";
?>
我的php文件与jpg的文件夹在同一个文件夹中。 有什么想法吗?
没有错误。如果我使用background:url(1.jpg); (而不是PHP)它工作正常,但显然显示1图像。
答案 0 :(得分:3)
小解决方案:
我们知道他在服务器上有5张图片:
'1.jpg','2.jpg','3.jpg','4.jpg','5.jpg'
如此快速的提示:
<body style="background: url('pahttoimages/<?= rand(1, 5) ?>.jpg') no-repeat top center;">
答案 1 :(得分:1)
我认为CSS文件无法解释您的PHP代码
试试body {
background: url(<?php echo '1.jpg'; ?>) no-repeat fixed;
}
答案 2 :(得分:1)
据我所知,您的代码有效。
除此之外,你应该写下最后一行:
$selectedBg = $bg[$i];
此处无需报价。
我怀疑这是造成错误的原因:
我的php文件与jpg的文件夹在同一个文件夹中。有什么想法吗?
背景图像需要与您使用的模板文件相关,而不是PHP文件。只有当图像与模板切片位于同一文件夹中时,您的脚本才会起作用。
在我的WP安装中,我有一个位于/wp-content/themes/mytemplate/
的模板和位于/wp-content/themes/mytemplate/images/
的模板图形。如果我要使用您的脚本,我需要在数组中的所有背景之前预先添加/images/
。
顺便说一句,您应该考虑在Firefox上安装Firebug并检查源代码。背景名称是否已解析为模板?加载图像是否返回404 not found-error?位置和路径是否正确?
background-image: url(<?php include ("bg.php"); echo $selectedBg; ?>);
background-position: fixed;
background-repeat: no-repeat;
答案 3 :(得分:0)
这样做:
// bg.php
<?php
return array(
'1.jpg',
'2.jpg',
'3.jpg'
);
// Wordpress CSS
<?php
$imageUrls = include('bg.php');
$imageUrl = $imageUrls[ array_rand($imageUrls) ];
?>
.someClass {
background-image: url(<?php echo $imageUrl ?>);
}
答案 4 :(得分:0)
background: url('<?php $a = array('darkred.jpg','red.gif','pink.png'); echo $a[array_rand($a)];?>');