如何将来自某个用户的所有外部链接设置为“NOFLOG”?

时间:2020-02-16 作者:Patrick Dreid

我想知道如何将我博客中某个wordpress用户的所有帖子中的所有外部链接自动设置为“nofollow”?因此,此用户的旧帖子和将来的帖子都会受到此“nofollow”命令的影响。这怎么可能?

非常感谢你!

1 个回复
SO网友:TomC

您想尝试以下操作(未经测试):

// Nofollow in content
$author_id = get_the_author_meta( \'ID\' );
add_filter(\'the_content\', \'my_nofollow\');

function my_nofollow($content) {
    //return stripslashes(wp_rel_nofollow($content));

    return preg_replace_callback(\'/<a[^>]+/\', \'my_nofollow_callback\', $content);
}

function my_nofollow_callback($matches, $author_id) {
    $link = $matches[0];
    $site_link = get_bloginfo(\'url\');
    if ($author_id === 4) {
        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) && (strpos($link, \'rel\') === false)) {
            $link = preg_replace(\'/rel=\\S(?!nofollow)\\S*/i\', \'rel="nofollow"\', $link);
        }
    }
return $link;
}
注意:这是基于我在我的一个网站上使用的nofollow函数,我刚刚为添加了一个条件if ( is_author () ) 在那里