niihost

WordPress文章内所有链接自动添加target=”_blank” 和rel=”nofollow”

前言

WordPress自动为站内链接添target="_blank"属性,以及为站外链接同时添加target="_blank"rel="nofollow noopener"属性,提升访客浏览体验和网站SEO。

//对所有链接添加target="_blank",并对站外链接添加rel="nofollow noopener"
add_filter('the_content', 'add_nofollow_to_external_links');
function add_nofollow_to_external_links( $content ) {
    $anchorTagRegexp = "/]*href=(\"?)([^\" >]*?)\\1[^>]*>/siU";
    if(preg_match_all($anchorTagRegexp, $content, $matches, PREG_SET_ORDER)) {
        if( !empty($matches) ) {
            $siteUrl = get_option('siteurl');
            $newContent = $content;
            foreach($matches as $match) {
                $originalTag = $match[0];
                $modifiedTag = $originalTag;
                $url = $match[2];
                if (!preg_match('/target\s*=\s*"\s*_blank\s*"/', $modifiedTag)) {
                    $modifiedTag = preg_replace('/>$/', ' target="_blank">', $modifiedTag);
                }
                if (strpos($url, $siteUrl) === false && !preg_match('/rel\s*=\s*"\s*nofollow\s*"/', $modifiedTag)) {
                    $modifiedTag = preg_replace('/>$/', ' rel="nofollow noopener">', $modifiedTag);
                }
                $newContent = str_replace($originalTag, $modifiedTag, $newContent);
            }
            $content = $newContent;
        }
    }
    return $content;
}
//WordPress系统对链接添加的rel="nofollow noopener" 替换为 rel="nofollow noopener"
function no_referrer($content) {
    $replace = array("noreferrer " => "nofollow " );
    $new_content = strtr($content, $replace);
    return $new_content;
}
add_filter('the_content', 'no_referrer', 999);

给TA赏糖
共{{data.count}}人
人已赏糖
技术分享

新手指南:更改账户名win11的简单步骤解析

2024-11-30 21:10:07

技术分享

如何有效删除空白页?Word文档排版小技巧详解

2024-12-1 2:57:51

0 条回复 A文章作者 M管理员
技术宅评论
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索