Chuyển toàn bộ link ngoài trong wordpress thành Nofollow

Nếu bạn muốn thêm thuộc tính nofollow vào một liên kết ngoài, bạn chỉ cần chèn thêm ref=”nofollow” khi đặt liên kết là xong. Tuy nhiên, nếu trong trường hợp website bạn đã có rất nhiều liên kết từ trước và bạn quên làm động tác này thì sao?

Tương đối đơn giản, các bạn chỉ cần cài thêm 1 plugin hoặc thêm đoạn code sau vào file function.php của theme bạn đang sử dụng

add_filter('the_content', 'my_nofollow');
add_filter('the_excerpt', 'my_nofollow');
 
function my_nofollow($content) {
    return preg_replace_callback('/<a[^>]+/', 'my_nofollow_callback', $content);
}
 
function my_nofollow_callback($matches) {
    $link = $matches[0];
    $site_link = get_bloginfo('url');
 
    if (strpos($link, 'rel') === false) {
        $link = preg_replace("%(href=\S(?!$site_link))%i", 'rel="nofollow" $1', $link);
    } elseif (preg_match("%href=\S(?!$site_link)%i", $link)) {
        $link = preg_replace('/rel=\S(?!nofollow)\S*/i', 'rel="nofollow"', $link);
    }
    return $link;
}