如何给特定链接添加不关注?

时间:2019-12-14 作者:marouane91

我有一些隐形会员链接,我想添加的属性nofollow.

然而,我正在寻找一种编码方法,允许我将包含特定字符串的链接作为目标,如/go/brand.

在搜索时,我在某处找到了这段代码,但它在函数中对我不起作用。php,所以我希望有人能为我提供一些可以帮我完成这项工作的东西。

提前非常感谢!

add_filter( \'the_content\', \'my_string_replacements\');
function my_string_replacements ( $content ) {
    if ( ! is_admin() && is_main_query() ) {
        return preg_replace(\'/<a(.*href=".*\\/go\\/pluto\\/?".*)>/\', \'<a$1 rel="nofollow">\', $content );
    }
    return $content;
}

1 个回复
最合适的回答,由SO网友:Heba Fareed 整理而成

替换代码将整个a元素内容替换为<a rel="nofollow">. 更正如下:

我用过(.+?) 之间<a and href" 之前和之后/go/pluto/ 截止日期>. 然后在替换中,我们将$1 $2 $3 等来保存它们并添加rel="nofollow". 你可以在这里登记test, 下面是关于replace.

return preg_replace(\'/<a(.+?)href="(.+?)\\/go\\/pluto\\/(.+?)"(.+?)>/\', \'<a$1href="$2/go/pluto/$3" rel="nofollow"$4>\', $content );

Edit:

考虑到已经有包含rel属性的链接,我们将运行regex来搜索包含rel但不包含nofollow的链接,并添加nofollow:

return preg_replace(\'/<a(.+?)href="(.+?)\\/go\\/pluto\\/(.+?)"(.+?)rel="((?!nofollow).)*(?=")/\', \'$0 nofollow\', $content);
如果a元素不包含rel,我仍在寻找插入rel的合适代码。