乌徒帮技术范儿WordPressWordPress开发 › 为wordpress每一篇文章加入自定义的不同广告

为wordpress每一篇文章加入自定义的不同广告

分类:WordPress开发

我们用wordpress搭建起来的网站几乎全部都是在模板文件或后台给定广告代码,但是这个广告代码是针对全站的,也就是说在每个网页都能显示。我想为自己的文章搭配对应的广告,如一篇关于免费空间的文章旁边特定投放一个有关空间购买的广告。不要管我为什么,如果你也想实现的话,就往下看,只作参考而已。

1、思路:要么用某种插件,但我没有找到;要么使用自定义栏目功能。只有这样才能在后台轻松实现广告配对。如果有插件最好,可以获得特殊的插入代码的界面,如果没有找到的话,就跟随我的方法吧。

2、遇到问题:自定义栏目怎么用,这个不用讲太多,百度里找下教程。自定义栏目在wordpress数据库中被作为一个单独的表,每一个自定义内容 都有一条记录,该记录的属性主要有key名称,value值,对应的文章ID其他的不用管。每添加一个自定义栏目值都会产生新的一条记录。自定义栏目就是 要实现根据每篇文章给出新的属性,例如,我自定义了一个栏目:作者:frustigor,只要我在自定义栏目中加入这一属性,那么在数据库的 postmata表中就会写入一条新的记录,记录名称是"作者",值是"frustigor“,同时记录该属性对应的文章ID。如果下次再使用"作者"属 性,但值不一样,比如"tigor",那么产生新的一条记录,记录名称还是作者,值和文章对应ID都变了。

3、使用方法:

1)在文章撰写或修改时下拉屏幕,找到自定义栏目,自行写入一个新的栏目,这个新的栏目在你写下一篇文章的时候,可以再次使用栏目名称,即key 值。例如我写入"postad"作为名称,即表示该栏目为广告,将广告代码"<table>.....</table>"作为 value值写入后面的大框内,添加按钮,OK,新的自定义栏目写入数据库了。

2)加入到文章对应地方:将"<?php $key="postad"; get_post_meta($post->ID, $key, true); ?>"这串代码放到文章模板中,一般是single.php,注意,一定要放在文章循环内,如放在“编辑”字样下方的endif之前。这样就可以实现调用你刚才在撰写文章时加入的广告代码了。

3)一些扩展:这串代码和该调用只有在single.php文件中才能起到正常作用。如果放在sider.php中,则会出现只能调用出最后一次更 新postad的内容,在网站首页也会被调用出来。但是我们都知道文章页的边侧空白了很多出来,干脆放些广告比较好。办法是仍然调用上面的代码,但是做了 小小的处理,因为这段小代码只能放在文章内容代码内,所以弄一个传递参数来实现在循环外的调用。将"<?php $key="postad"; $postad = get_post_meta($post->ID, $key, true); ?>"放在循环内,这样就将内容放在参数$postad内了,在single.php其他地方只要用<?php echo $postad; ?>就可以了。但是我们要放在边侧栏里呀,这个好办,我们只要将这个语句放在<?php get_sidebar(); ?>
后面就可以了,当然,还要做一下漂浮的样式处理,我的办法是直接<div><?php echo $postad; ?></div>就实现了。

4)还有一种调用:<?php?$post_id=$_GET['p']; echo get_post_meta($post_id, "postad", $single = true); ?>可以实现各种调用,前面的
$_GET['p']; 是抓取网址?后面的参数值,也就是说用这种方法,我们还可以实现对不同栏目投放不同的广告,结合一些系统函数还可以实现不同投放。稍稍解释下,我们在某篇 文章中投放了广告,并使用前面的方法调用了,在某个栏目列表我也想调用该广告,那么就用这种方法,但是前提是你的网址格式要设置成含有?参数的形式。


后来找到了能够让3、4两种状况结合的方法,即用一个global $post,代码如下:

<?php global $post; $postad = get_post_meta($post->ID,'postad', true); ?>

这段代码就可以放在sidebar.php中,在加上用is_home(),is_single()等函数判断是否为文章最终页,就可以将广告投放在文章页的特定位置了。

填写个人信息,赶快回复吧!