图片待添加
图片待添加

WordPress通过php代码实现广告位随机排序广告位

2020-03-12 12:54 分类:WordPress主题开发制作教程 阅读(次阅读)

我们很多WordPress网站右侧或者头部可能会有广告位,这样可以通过广告位获得一定的收入,而这个广告的位置如果是固定的那么可能就无法获得同样的关注度.
这种情况我们可以通过php代码实现广告随机排序:

WordPress通过php代码实现广告位随机排序广告位

通过php代码实现广告随机排序方法一:

在后端排序好再输出页面. 将广告节点用数组存放, 对数组进行随机排序, 再输出经过排序的数组. 参考代码 (PHP) 如下:
记得文件后缀要是php.

需要注意的是如果使用了WordPress缓存插件的话,可能会因为缓存导致无法生效,需要采用下面的JavaScript代码.

<?php
// WordPress通过php代码实现广告随机排序
// 原文链接: https://www.wpyi.com/guanggao-suiji.html
// 用数组存放广告列表
$ads = array('<a href="#"><img src="ad-125x125.png" alt="广告 1" width="125" height="125" /></a>'
,'<a href="#"><img src="ad-125x125.png" alt="广告 2" width="125" height="125" /></a>'
,'<a href="#"><img src="ad-125x125.png" alt="广告 3" width="125" height="125" /></a>'
,'<a href="#"><img src="ad-125x125.png" alt="广告 4" width="125" height="125" /></a>'
);

// 对数组进行随机排序
shuffle($ads);

// 输出经过排序的数组
$html = '';
foreach ($ads as $ad) {
$html .= $ad;
}
echo $html;
?>

通过php代码实现广告随机排序方法二:

本方法需要 广告代码文件ads.txt 与ads.logip记录文件

<?php 
#########随机广告显示##########  
function myads(){ 
$dir="ads";   #设置存放记录的目录  
//$dir="ads";   #设置存放记录的目录  
$ads="$dir/ads.txt"; #设置广告代码文件 
$log ="$dir/ads.log"; #设置ip记录文件 

$ads_lines=file($ads); 
$lines=count($ads_lines);#文件总行数 

####读出广告总数$ads_count和显示次数到数组$display_array######## 
$ads_count=0; 
$display_count=0; 
for ($i=0;$i<$lines;$i++){ 
    if((!strcmp(substr($ads_lines[$i],0,7),"display"))){ 
        $ads_count+=1; 
        $display_array[$ads_count]=substr($ads_lines[$i],8); 
        $display_count+=$display_array[$ads_count]; 
        } 
} 
####决定随机显示序号$display_rand##### 
srand((double)microtime()*1000000); 
$display_rand = rand(1,$display_count); 

###决定广告序号$ads_num###### 
$pricount=0; 
$ads_num=1; 
for($i=1; $i<=$ads_count; $i++) { 
  $pricount += $display_array[$i]; 
  if ($display_rand<=$pricount) {$ads_num=$i;break;} 
} 

#####播放广告代码######### 
$num=0; 
$flag=0; 

for($i=0;$i<$lines;$i++){ 
    if((!strcmp(substr($ads_lines[$i],0,7),"display"))){$num++;} 
    if(($num==$ads_num)and($flag==0)){$flag=1;continue;} 
    if(($flag==1)and strcmp($ads_lines[$i][0],"#")){echo $ads_lines[$i];continue;} 
    if(($flag==1)and(!(strcmp($ads_lines[$i][0],"#")))){break;} 
} 
####纪录广告显示次数######### 
$fp=fopen($log,"a"); 
fputs($fp,date( "Y-m-d H:i:s " ).getenv("REMOTE_ADDR")."==>".$ads_num."\n"); 
fclose($fp); 
} 
?> 

通过JavaScript代码实现广告随机排序方法一:

JavaScript代码有个缺点容易被浏览器的广告拦截插件拦截.

<div id="ads" style="display:none;">
<a href="#"><img src="ad-125x125.png" alt="广告 1" width="125" height="125" /></a>
<a href="#"><img src="ad-125x125.png" alt="广告 2" width="125" height="125" /></a>
<a href="#"><img src="ad-125x125.png" alt="广告 3" width="125" height="125" /></a>
<a href="#"><img src="ad-125x125.png" alt="广告 4" width="125" height="125" /></a>
</div>
<div id="random-ads" style="display:none;">
</div>

<script type="text/javascript">
//<![CDATA[

var source = document.getElementById('ads');
var target = document.getElementById('random-ads');
var ads = source.getElementsByTagName('a');

// 下标数组
var arr = new Array();
for(var i=0; i<ads.length; i++) {
arr[i] = i;
}

// 随机排序
function randomSort(a, b){
var tmp = parseInt((Math.random() + 0.5), 10);
return tmp ? a-b : b-a;
}

// 将老的广告区的节点随机插放到新的广告区
arr.sort(randomSort);
for(var i=0; i<arr.length; i++) {
target.appendChild(ads[arr[i]].cloneNode(true));
}

// 显示新的广告区和移除老的广告区
source.parentNode.removeChild(source);
target.style.display = 'block';

//]]>
</script>

通过JavaScript代码实现广告随机排序方法二:

将下列代码保存为ad.js

var p=3;
var q=Math.floor(Math.random()*p+1)
switch(q)
{
case 1:
document.writeln("<a href=http://广告链接地址 target=_blank rel="noopener noreferrer"><img src=http://广告图片地址  border=0></a>");
break;
case 2:
document.writeln("<a href=http://广告链接地址 target=_blank rel="noopener noreferrer"><img src=http://广告图片地址  border=0></a>");
break;
case 3:
document.writeln("<a href=http://广告链接地址 target=_blank rel="noopener noreferrer"><img src=http://广告图片地址  border=0></a>");
break;
}

在要引入随机广告位的地方加入: 比如下面这样

<script type="text/javascript" src="https://www.wpyi.com/js/ad.js"></script>

通过JavaScript代码实现广告随机排序方法三:

3个广告位随机排序.

如果想调整这个随机广告位图片数量,只需要修改 var p=3 这里的数字,然后修改 switch 里面的对应的 case 数量即可。

function strToDate(str,ext){
        if(str==null || str=='') return;
        var arys = new Array();
        arys = str.split('-');
        var newDate = new Date(arys[0],arys[1]-1,arys[2],9,0,0);
        if(ext){
            newDate = new Date(newDate.getTime()+1000*60*60*24);
        }
        return newDate;
    }
    function showit(str,start,end){
    var date = new Date();
    var start=strToDate(start);
    var end=strToDate(end,false);
    if(date>start && date<end || start==null){
    document.write(str);
        }
    }
    var p=3;
    var q=Math.floor(Math.random()*p+1)
    switch(q)
    {
    case 1:
    showit("<a href='https://广告链接地址=_blank'><img src='http://广告图片地址'  border=0></a>","2017-3-24","2017-3-25");
    break;
    case 2:
    showit("<a href='https://广告链接地址=_blank'><img src='http://广告图片地址'  border=0></a>","2017-3-24","2017-3-25");
    break;
    case 3:
    showit("<a href='https://广告链接地址=_blank'><img src='http://广告图片地址'  border=0></a>","2017-3-24","2017-3-25");
    break;
    }

本文地址: https://www.wpyi.com/guanggao-suiji.html