北极寒流 » 网络资源 » wordpress文章内任意位置插入广告方法之二(非插件) - 2011.02.12

wordpress文章内任意位置插入广告方法之二(非插件)

这又是一个关于在wordpress文章内部任意位置插入广告的方法。上次在“wordpress博客任意位置插入广告方法(非插件)”文章中介绍的是通过wordpress短代码功能来实现日志任意位置插入广告代码,而今天却是利用日志的more 截断功能来插入广告的,这种方法同样简单方便。

在文章内部任意位置插入广告比起固定于顶部或者底部的广告, 这样的广告方式更加灵活. 而More标签可以自行添加在文章中, More之后的文章内容依旧在广告之后显示, 非常实用, 在广告点击的可能性比较高的地方放置广告还可有效的提高广告的点击率.

开始之前需要确认的一点就是自己没有使用"more"标签做任何截断功能。然后打开你主题的single.php, 打开后找到

<?php the_content(''); ?>

替换为

<?php $more = 0; the_content(''); ?>
<div class="ggad">
<script type="text/javascript"><!--
google_ad_client = "pub-XXXXXXXXXXX";
/* 234x60 */
google_ad_slot = "XXXXXXXX";
google_ad_width = 234;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<?php after_more_content($post->post_content); ?>

中间的广告代码可以随便你放什么广告代码,无论google还是百度的。

single.php这样就修改好了,然后就是修改function.php文件,打开你的function.php文件在其中添加下面的代码

function after_more_content($body) {
  $moretag = '<!--more';
  $content = FALSE;
  $morePos = stripos($body, $moretag);

if ($morePos !== FALSE || $morePos > -1) {
  $content = substr($body, $morePos + strlen($moretag));
  $morePos = stripos($content, '-->'); // reuse variable

  if ($morePos !== FALSE || $morePos > -1)
  $content = substr($content, $morePos + 3); // strip off rest of more tag
  } else {
  // $content = $body;
  }

$content = apply_filters('the_content', $content);
  $content = str_replace(']]>', ']]&gt;', $content);

echo $content;
  }

这样就完成了. 现在可以在文章的任意部分添加"more"标签, 广告就会出现在预定的位置上了。
上次给大家分享的wordpress博客任意位置插入广告方法(非插件)请移步http://www.articn.com/post/188.html

后来又在其他地方发现一种更简单的方法。single.php文件可以不用修改,直接把下面代码丢入function.php文件,然后在文章的任意部分添加"more"标签, 广告就会出现在预定的位置上了。

/* more处增加广告 */
function ad_code_filter( $content ) {
    global $id;
    if ( !is_single() ) {return $content;}
    $html = '<div class="single_ads"><script type="text/javascript"><!--
google_ad_client = "ca-pub-2576785710xxxxx";
/* 468x15 */
google_ad_slot = "6340614056";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>';
return preg_replace("#<(a|span) id="more-$id"></1>#", $html."$0", $content, 1);
return $content;}
add_filter('the_content', 'ad_code_filter', 50);

这种方法是利用WordPress 自带的 add_filter 函数实现的,利用这个 filter 我们还可以在文章任意的地方插入广告,或者添加其他的应用。相对来说这种方法比第一种方法来的简单,推荐使用。

上面的代码来自http://blog.imbolo.com/wordpress-insert-a-advertisement-at-the-more-tag/不过原文由于wp-syntax 插件的问题,有部分代码被转换了。后来在博主Bolo的热情帮助下终于解决了,在此感谢Bolo。

在wordpress文章内任意位置插入广告效果预览:http://wwwww.articn.com/post/2120.html