之前看到有些网站的广告输出很特别,就是在文中显示广告,我说的不是上下、左右角之类的显示方法。要看效果,大家可以看 BlueFate 的博客文章中显示的广告。因为我不是搞程序的,不过还是了解一点 php,所以研究了老半天才写出来一个在文中输出广告的代码:
<?php
//输出文章内容,当有遇到第一个</p> 的时候,显示广告
$form = 0;
$contents = get_the_content();
$lenght = stripos($contents,"</p>");//以</p> 来分割字符窜,并以数字形式返回所在的位置
$lenght = $lenght + '4';//加上</p> 站的字符数
$contents1 = substr($contents,$form,$lenght);//截取文章
$contents2 = substr($contents,$lenght);
if (get_option('swt_adt') == 'Hide' || strlen($contents)<=$lenght || $lenght <20) { //输出广告
the_content('');
}
else {
echo $contents1;//输出内容的前半部分
include(TEMPLATEPATH . '/includes/adwz.php');
echo $contents2;//输出内容的后半部分
}
?>
保存以上的代码为 contents.php,路径在模板的文件夹 includes/contents.php,在文章页 single.php 输出文章的时候用替换原来的 <?php the_content(''); ?> 。这里对代码稍作解释,首先用 get_the_content() 函数获取到文章内容,然用 stripos() 函数返回指定字符串 「</p>」 的位置,接着再用 substr() 函数将内容截取为两部分; 最后通过判断来显示广告,如果标签</p> 不存在或者广告隐藏了就直接输出原文章,否则输出文章前段+广告+文章后半部分。大家也可以用判断字符串的数量来显示广告。