WordPress技巧:在文章列表插入一篇广告跳转文章或在任意位置插入广告代码

这个Wordpress技巧可以让你在文章列表中的任意位置插入一篇或多篇广告跳转文章,完美的与主题结构融合,与主题列表的展现形式一模一样,不用去额外的改变任何结构!而且可以一键无痕的将发布的任何文章变成广告跳转文章!

实现过程非常简单,利用了 wordpress 强大的自定义字段。下面直接看代码实现过程。

首先,打开主题文件 functions.php,粘贴下面的代码到里面:

/*如何在 WordPress 文章列表中完美的插入一篇或几篇广告跳转文章*/
function lxtx_post_link() {
global $post;
$thePostID = $post->ID;
$post_id = get_post($thePostID);
$title = $post_id->post_title;
$perm  = get_permalink($post_id);
$post_keys = array(); $post_val  = array();
$post_keys = get_post_custom_keys($thePostID);
if (!empty($post_keys)) {
     foreach ($post_keys as $pkey) {
         if ($pkey=='url1' || $pkey=='title_url' || $pkey=='url_title') {
             $post_val = get_post_custom_values($pkey);
         }
     }
     if (empty($post_val)) {
         $link = $perm;
     } else {
         $link = $post_val[0];
     }
} else {
     $link = $perm;
}
echo $link;
}

再把主题中输出文章固定链接地址的函数:the_permalink() 替换为我们上面自定义的这个函数:lxtx_post_link() 即可!

最后,当你要将文章链接到博客之外的页面时,只要在这篇文章中创建自定义字段url1或title_url或url_title ,再输入外部 URL 地址作为值就可以了。

完成这个操作后,当你发表一篇文章时,系统会查找字段url1或title_url或url_title的值,如果找到,那么就会直接链接到外部站点而不是本博客文章;如果没有找到自定义字段值,就会简单地显示链接本身。

WordPress列表文章中间加入广告位
WordPress 的分类页、Search 页,Tag 页等输出的文章列表时,如果想在中间位置(比如第 5 个文章后面)出现,可以用下面的代码:

<?php if ($wp_query->current_post == 4) : ?>  
    <div> 广告代码 </div>  
<?php endif;  ?>  
<?php if ($wp_query->found_posts < 5 and $wp_query->current_post == ($wp_query->found_posts - 1)): ?>  
    <div> 广告代码 </div>  
<?php endif; ?>

c u r r e n t p o s t 属 性 , 必 须 用 在 L o o p 里 面 , 表 示 当 前 显 示 的 文 章 索 引 值 ; 它 是 以 0 为 起 始 值 , 如 果 想 要 在 第 5 个 文 章 后 面 , current_post 属性,必须用在 Loop 里面,表示当前显示的文章索引值;它是以 0 为起始值,如果想要在第 5 个文章后面, currentpostLoop05wp_query->current_post 等于 4 即可。

$found_posts 属性,表示按 $wp_query 匹配的文章总数。

上面的代码只能放在 Loop 里面,比如 <?PHPif(have_posts()):while(have_posts()):the_post();?> 后面,表示广告代码将在文章列表的第 5 个文章后面出现,如果列表匹配出来的文章总数不到 5 个,就在列表的最后位置出现广告代码。

本文转自六艺开源:阅读原文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值