学习NO.1 发表于 2016-1-28 00:14:54

自动添加nofollow属性和新窗口打开WordPress文章/页面的站外链接

站外链接的SEO还是比较重要的,今天倡萌分享下 自动添加nofollow属性和新窗口打开WordPress文章/页面的站外链接 的方法。直接安装启用 Nofollow for external link 插件,或者将下面的代码添加到当前主题的 functions.php 文件即可:add_filter( 'the_content', 'cn_nf_url_parse');

function cn_nf_url_parse( $content ) {

        $regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>";
        if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
                if( !empty($matches) ) {

                        $srcUrl = get_option('siteurl');
                        for ($i=0; $i < count($matches); $i++)
                        {

                                $tag = $matches[$i];
                                $tag2 = $matches[$i];
                                $url = $matches[$i];

                                $noFollow = '';

                                $pattern = '/target\s*=\s*"\s*_blank\s*"/';
                                preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
                                if( count($match) < 1 )
                                        $noFollow .= ' target="_blank" ';

                                $pattern = '/rel\s*=\s*"\s*ofollow\s*"/';
                                preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
                                if( count($match) < 1 )
                                        $noFollow .= ' rel="nofollow" ';

                                $pos = strpos($url,$srcUrl);
                                if ($pos === false) {
                                        $tag = rtrim ($tag,'>');
                                        $tag .= $noFollow.'>';
                                        $content = str_replace($tag2,$tag,$content);
                                }
                        }
                }
        }

        $content = str_replace(']]>', ']]>', $content);
        return $content;

}最终效果:自动给文章/页面的站外链接添加nofollow属性(rel=”nofollow”),并且在新窗口打开这些链接(即添加 target=”_blank”属性)。如果已经手动给链接添加了 rel=”dofollow”,就不会添加 rel=”nofollow”;如果手动添加了 target=”_blank”,就不会重复添加。
页: [1]
查看完整版本: 自动添加nofollow属性和新窗口打开WordPress文章/页面的站外链接