Emlog自动给文章内站外超链接添加rel="nofollow"

SEOer一致认为内容中存在站外链接会导致该页面的权重流失,为了保住权重,通常的做法是给超链接添加rel=”nofollow”属性及属性值,对于经常在内容中添加站外链接的博主来说,手动添加rel=”nofollow”显然很不方便,最好的方法就是让网站识别内容里的站外链接,然后自动给其添加rel=”nofollow”,下面是emlog程序的实现方法。

把下面的代码添加到当前使用的主题的module.php文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
function content_nofollow($log_content, $domain){
    preg_match_all('/href="(.*?)"/', $log_content, $matches);
    if ($matches) {
        foreach ($matches[1] as $val) {
            if (strpos($val, $domain) === false) {
                $log_content = str_replace('href="' . $val . '"', 'href="' . $val . '" rel="external nofollow" ', $log_content);
            }
        }
    }
    preg_match_all('/src="(.*?)"/', $log_content, $matches);
    if ($matches) {
        foreach ($matches[1] as $val) {
            if (strpos($val, $domain) === false) {
                $log_content = str_replace('src="' . $val . '"', 'src="' . $val . '" rel="external nofollow" ', $log_content);
            }
        }
    }
    return $log_content;
}
?>

提示:不知道添加到哪里的,直接在module.php文件的最底部的 ?> 下一行添加。

在当前使用主题的echo_log.php文件中,找到代码:

1
<?php echo $log_content; ?>

替换为:

1
<?php echo content_nofollow($log_content,BLOG_URL);?>

保存文件即可。

PS:博客吧在emlog 5.3.x中测试成功。

网友留言:

  1. 2016-09-22回复

    百度不支持JS调用的nofollow,这方法不行的了

    博主有其他方法吗?

    难道只能手动一个个的加了?

    • 博主板凳
      2016-09-23回复

      这个是php的方法,和js无关

      • 2016-09-24回复

        博主的意思是这种方法对搜索引擎有效??我也好像在蓝叶那里看到过这个,他说这种百度不识别的啊。。。

  2. 2016-06-02回复

    可能是格式问题,我在note里面编辑就好了!代码没问题

  3. 2016-06-02回复

    添加后网站不能显示!

  4. 内容很实用

发表留言