在wordpress中的随机背景图像?

时间:2013-06-25 07:20:48

标签: php css image wordpress background

我在我的服务器上使用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图像。

5 个答案:

答案 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)];?>');
相关问题