web-dev-qa-db-ja.com

投稿にrel = "nofollow"を含めるためのプラグイン?

私のサイト のいずれかにある投稿内のすべてのリンクをrel = "nofollow"で投稿内のリンクにするようにします。私はWP-NoExternalLinksを除いて仕事をしたプラグインを見つけることができませんでした。運命の日のオプションを使用しない限り、これも機能しませんでした。

「文書内のすべてのリンクを隠す(ブログを遅くし、キャッシュや他のプラグインと競合する可能性があります。ご自身の責任で使用してください。」

しかし、私がそれを使うとき、それは私のblogrollリンクにもnofollowを置きます(それは私が生き続けるのを好みました)。

何がこれを引き起こしている可能性がありますか?またはそれを解決する方法?

ありがとう。

1
Tal Galili

functions.phpにフィルタを追加することができます

// Nofollow in content
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) {
    $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;
}
3
웃mauri

Nofollowを追加するためにjQueryを使ってみましたか?私はあなたの投稿が正しく理解されていれば、外部リンクのフォローをやめたいと思うだけですが、内部リンクは正しいのですか?

$(function() {
    $("a[href^=http://]").attr("rel","nofollow");
});
1
Chadster_BAM

プラグイン Rel Nofollow があります。

その説明を引用:

投稿が保存されると、プラグインはrel = "nofollow"属性を投稿リンクに追加します。プラグインは、プラグインのアクションから投稿を除外するためのaptチェックボックスも提供します。

0
Ste_95
/**
* add nofollow to links
*/
function add_nofollow_content($content) {
    $content = preg_replace_callback(
        '/<a[^>]*href=["|\']([^"|\']*)["|\'][^>]*>([^<]*)<\/a>/i',
    function($m) {
        if (strpos($m[1], "YOUR_DOMAIN_HERE") === false)
            return '<a href="'.$m[1].'" rel="nofollow" target="_blank">'.$m[2].'</a>';
        else
            return '<a href="'.$m[1].'" target="_blank">'.$m[2].'</a>';
    },
    $content);
    return $content;
}
add_filter('the_content', 'add_nofollow_content');

この関数は正規表現を使ってhttpや他のリンクを見つけ、それからあなたのドメイン名が含まれているリンクにnofollowを追加することもスキップします。 http://digitizor.com/2014/07/05/add-nofollow-external-wordpress/ に関する詳細。そのページには、他のドメインの追加に関する詳細も含まれています。

0
Deb