如何在wordpress侧边栏中旋转两个图像?

时间:2010-02-16 15:29:00

标签: php

我认为(希望)我的问题比我的措辞更简单,但这也是我在谷歌上空的原因。它与此类似,但我需要处理一些HTML并且有点不清楚:Random image display

在我的Wordpress安装的侧边栏中,我按此顺序有两个图像:

<a href="http://www.link1.tld"><img src="files/image1.jpg" border="0" /></a>
<a href="http://www.link2.tld"><img src="files/image2.jpg" border="0" /></a>

刷新页面时完成旋转此顺序的最简单方法是什么(这样订单将是image2 / image1)?下次刷新时,返回image1 / image2?

1 个答案:

答案 0 :(得分:1)

要完成此操作,您需要在用户的cookie中存储视图计数器,然后根据该计数器显示:

session_start();
if(!isset($_SESSION['views'])) {
  $_SESSION['views'] = 0;
}
else {
  $_SESSION['views']++;
}

然后显示:

<?php if($_SESSION['views'] % 2 == 0): ?>
<a href="http://www.link1.tld"><img src="files/image1.jpg" border="0" /></a>
<? endif; ?>
<a href="http://www.link2.tld"><img src="files/image2.jpg" border="0" /></a>
<?php if($_SESSION['views'] % 2 == 1): ?>
<a href="http://www.link1.tld"><img src="files/image1.jpg" border="0" /></a>
<? endif; ?>

如果视图计数器是偶数,它将首先打印image1。如果它很奇怪,它会打印第二个。

将此缩放为两个以上的图像可以这样做:

// map of images to URLs
$images = array(
  'image1.jpg' => 'http://www.link1.tld',
  'image2.jpg' => 'http://www.link2.tld',
  'image3.jpg' => 'http://www.link3.tld',
  'image4.jpg' => 'http://www.link4.tld',
);

// reorder the list of images based on the current view count
$ordered = array_merge(array_slice($images, $_SESSION['views'] % count($images)), array_slice($images, 0, $_SESSION['views'] % count($images)));

然后显示只循环遍历有序列表:

<?php foreach($ordered as $image => $url): ?>
<a href="<?php echo $url; ?>"><img src="files/<?php echo $image; ?>" border="0" /></a>
<?php endforeach; ?>