【发布时间】:2019-04-19 01:11:48
【问题描述】:
我正在尝试追加 nofollow 以添加外部链接。如果链接没有rel 属性,则将添加rel="nofollow"。如果链接已经有rel="nofollow",则不会发生任何事情,如果链接有rel=something else,则还应添加nofollow 值。
function nofollow($content) {
$content = preg_replace_callback('/<a[^>]*href=["|\']([^"|\']*)["|\'][^>]*>([^<]*)<\/a>/i',
function($m) {
$parseUrl = parse_url(home_url());
$mydomain = $parseUrl['host'];
if (strpos($m[1], $mydomain) === false) {
return '<a href="'.$m[1].'" rel="nofollow">'.$m[2].'</a>';
} else {
return '<a href="'.$m[1].'">'.$m[2].'</a>';
}
},
$content);
return $content;
}
add_filter('the_content', 'nofollow');
代码成功地将rel=follow 添加到外部链接,但例如一个链接有rel="noopener" it will replace it willrel=follow. Why is it no appending like so?rel="noopener nofollow"`
【问题讨论】: