龙笑天龙笑天  2016-11-20 06:10 龙笑天下 隐藏边栏 |   42 条评论  2,102 
文章评分 50 次,平均分 4.8

如何在 WordPress 文章列表中完美的插入一篇或几篇广告跳转文章 wordpress

前段时间在知更鸟那看到一个非常有趣的事,他博客首页中文章列表处的第一篇文章居然是个广告,点击以后不是进入他博客的文章页,而是跳到了一个广告页面,欺骗性简直逆天了!随之而来的广告点击量可想而知了~

通常我们想达到这样的效果的话,就需要设置一个额外的广告位(方法见下面的额外补充 1),如果你想放在不同的地方的话(如,首页的不同结构中或侧边栏的不同结构中),则需要将各个广告位的结构调成与它们一样才行....

昨天,在胖子马博客发现了一个非常完美的方法,操作起来远没有上面描述的这样复杂!可以在文章列表中的任意位置插入一篇或多篇广告跳转文章,完美的与主题结构融合,与主题列表的展现形式一模一样,不用去额外的改变任何结构!而且可以一键无痕的将发布的任何文章变成广告跳转文章!

实现过程非常简单,利用了 wordpress 强大的自定义字段~

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

/**
* 如何在 WordPress 文章列表中完美的插入一篇或几篇广告跳转文章
* https://www.ilxtx.com/link-to-some-external-ressource-naturally.html
*/
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;
}

改自:《How to: Link to some external ressource in post title

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

最后,当你要将文章链接到博客之外的页面时,只要在这篇文章中创建自定义字段url1title_urlurl_title ,再输入外部 URL 地址作为值就可以了。完成这个操作后,当你发表一篇文章时,系统会查找字段url1title_urlurl_title的值,如果找到,那么就会直接链接到外部站点而不是本博客文章;如果没有找到自定义字段值,就会简单地显示链接本身。

如下图,图中的这篇“测试文章”的链接就是指向外链的!你看不出来吧~~

如何在 WordPress 文章列表中完美的插入一篇或几篇广告跳转文章 示例

友情提示:
1.可以把多篇文章变为广告跳转文章哦,而且通过调节时间,可以在任意位置显示。 这样访客在浏览你的文章时,肯定想不到这是一个广告!当然这样做肯定不是很合适啦~~
2.上面的代码还可以进一步精简的,我感觉不需要设置这么多的自定义字段~

额外补充 1

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; ?>

来自:《WordPress 分类页 在文章列表的任意位置插入广告代码

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

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

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

额外补充 2

陌小雨博客那又发现了另一个方法~ 只需要在发布文章时切换成文本,然后加入如下代码即可:

<script type="text/javascript">document.location = "https://www.ilxtx.com"</script>

注意替换网址为你想跳转的链接。可用于老文章失效,跳转到新文章哦~

额外补充 3:WordPress 在文章内容中间插入广告

下面的代码可以实现在文章的第几段后面插入广告,注意按照下面的注释修改广告代码和段落数,转自WP 大学

/**
 * WordPress 在文章内容中间插入广告
 * https://www.ilxtx.com/link-to-some-external-ressource-naturally.html
 */
//在文章内容的第二段后面插入广告
add_filter( 'the_content', 'lxtx_prefix_insert_post_ads' );
function lxtx_prefix_insert_post_ads( $content ) {
	$ad_code = '<div>添加你的广告代码</div>'; 
	if ( is_single() && ! is_admin() ) {
		// 修改 2 这个段落数
		return lxtx_prefix_insert_after_paragraph( $ad_code, 2, $content );
	}
	return $content;
}
 
// 插入广告所需的功能代码
function lxtx_prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
	$closing_p = '</p>';
	$paragraphs = explode( $closing_p, $content );
	foreach ($paragraphs as $index => $paragraph) {
		if ( trim( $paragraph ) ) {
			$paragraphs[$index] .= $closing_p;
		}
		if ( $paragraph_id == $index + 1 ) {
			$paragraphs[$index] .= $insertion;
		}
	}
	return implode( '', $paragraphs );
}

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

龙笑天
龙笑天 关注:32    粉丝:36 最后编辑于:2019-01-14
互助分享,互联网本该如此!

发表评论

表情 贴图 链接 私密 格式 签到
最赞评论
  1. 龙笑天
    龙笑天 永久会员 博主 来自天朝的朋友 火狐浏览器 Windows 7

    @Koolight[坏笑] 虽然猥琐,但对于流量大的站来说,点击量绝对惊人!

  2. BanYuner
    BanYuner 评论达人 LV.2 来自天朝的朋友 谷歌浏览器 54.0.2840.99 Windows 10 湖北省武汉市 电信

    还是直接在 html 模式下面直接输入 JS 代码就可以了

  3. 分钱榜
    分钱榜 来自天朝的朋友 谷歌浏览器 45.0.2454.94  vivo X5Pro D Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.94 Mobile Safari/537.36 浙江省湖州市 移动

    @龙笑天标题和文章直接说明:这是个广告这是个广告,也是不错的。可以让博客看起来没这么多广告位

  1. 福利大大
    福利大大 来自天朝的朋友 谷歌浏览器 78.0.3904.108 Windows 7 江西省南昌市 电信

    再把主题中输出文章固定链接地址的函数:the_permalink() 替换为我们上面自定义的这个函数:lxtx_post_link() 即可!
    请教龙哥,这个是在哪个文件里改?

    20楼 2020-09-20 22:57
    0 0 回复
  2. 万象资源网
    万象资源网 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 联通

    我相信是什么意思?请问这个打字飞出爆米花是怎么做成的?好看哈

    19楼 2018-06-16 22:15
    0 0 回复
扫一扫二维码分享