1

我在我的服务器上使用 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 文件在同一个文件夹中。有任何想法吗?

没有错误。如果我使用背景: url(1.jpg); (而不是 php)它工作正常,但显然显示 1 张图像。

4

5 回答 5

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;">
于 2013-06-25T07:55:44.023 回答
1

我认为 CSS 文件无法解释您的 PHP 代码尝试body { background: url(<?php echo '1.jpg'; ?>) no-repeat fixed; }

于 2013-06-25T07:38:26.593 回答
1

据我所知,您的代码是有效的。

除了,你真的应该写最后一行:

$selectedBg = $bg[$i];

这里不需要报价。


我怀疑这是导致错误的原因:

我的 php 文件与 jpg 文件在同一个文件夹中。有任何想法吗?

背景图像需要与您正在使用的模板文件相关,而不是 PHP 文件。仅当图像与模板切片位于同一文件夹中时,您的脚本才能工作。

在我的 WP 安装中,我有一个/wp-content/themes/mytemplate/位于/wp-content/themes/mytemplate/images/. 如果我要使用你的脚本,我需要/images/在你的数组中的所有背景之前预先附加。


顺便说一句,您应该考虑在 Firefox 上安装 Firebug 并检查源代码。背景名称是否解析到模板中?加载图像是否返回 404 not found 错误?位置和路径是否正确?


background-image: url(<?php include ("bg.php"); echo $selectedBg; ?>);
background-position: fixed;
background-repeat: no-repeat;
于 2013-06-25T07:44:40.367 回答
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 ?>);
}
于 2013-06-25T07:50:36.137 回答
0
background: url('<?php $a = array('darkred.jpg','red.gif','pink.png'); echo $a[array_rand($a)];?>');
于 2013-12-07T21:43:47.970 回答