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

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

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

  1. /*如何在 WordPress 文章列表中完美的插入一篇或几篇广告跳转文章*/
  2. function lxtx_post_link() {
  3. global $post;
  4. $thePostID = $post->ID;
  5. $post_id = get_post($thePostID);
  6. $title = $post_id->post_title;
  7. $perm  = get_permalink($post_id);
  8. $post_keys = array(); $post_val  = array();
  9. $post_keys = get_post_custom_keys($thePostID);
  10. if (!empty($post_keys)) {
  11.      foreach ($post_keys as $pkey) {
  12.          if ($pkey=='url1' || $pkey=='title_url' || $pkey=='url_title') {
  13.              $post_val = get_post_custom_values($pkey);
  14.          }
  15.      }
  16.      if (empty($post_val)) {
  17.          $link = $perm;
  18.      } else {
  19.          $link = $post_val[0];
  20.      }
  21. } else {
  22.      $link = $perm;
  23. }
  24. echo $link;
  25. }

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

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

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

WordPress列表文章中间加入广告位

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

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

$current_post 属性,必须用在 Loop 里面,表示当前显示的文章索引值;它是以 0 为起始值,如果想要在第 5 个文章后面,$wp_query->current_post 等于 4 即可。

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

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