[011]WordPress文章链接自动优化

文章难以避免会使用超链接。

如果不给这些外链添加nofollow标签,可能会造成我们自己站点的权重流失。如果这些外链不是通过_blank方式打开,可能会给访客造成不好的体验。

可是给每个外链手动添加nofollow和_blank又显得十分笨拙,如果你已经有很多文章,那么手动修改也将耗费巨大的精力。

不过不用担心,将下面的代码添加到你正在使用的主题的functions.php文件中,就可以自动给所有展示出来的文章的外链加上nofollow和_blank标记了!

// Link Blank And Nofollow By Raaynk
function autolinkraaynk( $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][0];
                $tag2 = $matches[$i][0];
                $url = $matches[$i][0];
                $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*[n|d]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;
}
add_filter( 'the_content', 'autolinkraaynk');

作者:Raaynk
链接:https://www.raaynk.com/archives/011-wordpress-auto-link-raaynk.html
来源:Raaynk's Blog

著作权归作者所有。商业性使用请联系作者获得授权。非商业性使用请注明链接及出处。

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

Author: Raaynk
Link: https://www.raaynk.com/archives/011-wordpress-auto-link-raaynk.html
Source: Raaynk's Blog

Copyright is owned by the author. For Commercial use, please contact the author for authorization. For Non-Commercial use, please indicate the link and the source.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

发表评论

电子邮件地址不会被公开。 必填项已用*标注