ワードプレスのwp_targeted_link_relフィルタの使用方法・解説

概要

wp_targeted_link_relフィルタは、WordPressにおいて、<a>要素のrel属性にnoreferrernoopenerを追加するために使用されます。このフィルタを利用すると、外部リンクを開く際のセキュリティとパフォーマンスの向上が図れます。具体的には、リンク先でのリファラ情報の漏洩を防ぎ、開かれた新しいタブが元のページへのアクセスをすることを防止します。

このフィルタは、例えば次のような機能を実装する際によく使われます。

  1. 外部リンクのセキュリティ向上
  2. リファラ情報の隠蔽
  3. ブラウザのパフォーマンス改善
  4. サイトのSEO対策
  5. リンクを自動的に処理するプラグイン開発
  6. テーマのカスタマイズ
  7. 社外リソースへのリンク管理
  8. ポリシーに基づくリンク管理

構文

add_filter('wp_targeted_link_rel', 'your_function_name', 10, 2);

パラメータ

  1. $rel – 現在のrel属性の値
  2. $url – リンク先のURL

戻り値

フィルタ処理後のrel属性の値。

関連する関数

wp_targeted_link_relフィルタに関連する関数

利用可能なバージョン

WordPress 4.0以降

コアファイルのパス

wp-includes/link-template.php

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1: noreferralとnoopenerを追加

add_filter('wp_targeted_link_rel', function($rel, $url) {
    return $rel . ' noreferrer noopener';
}, 10, 2);

このコードは、すべての外部リンクにnoreferrernoopenerを追加します。

サンプルコード2: 特定のドメインへの条件付き追加

add_filter('wp_targeted_link_rel', function($rel, $url) {
    if (strpos($url, 'example.com') !== false) {
        return $rel . ' noreferrer noopener';
    }
    return $rel;
}, 10, 2);

このコードは、特定のドメイン(例としてexample.com)への外部リンクにのみnoreferrernoopenerを追加します。

サンプルコード3: 自前の問い合わせを行う場合

add_filter('wp_targeted_link_rel', function($rel, $url) {
    // ここでカスタムロジックを追加
    // e.g., リンクの確認やログ記録など
    return $rel . ' noreferrer noopener';
}, 10, 2);

このコードでは、フィルタ内のロジックをカスタマイズするためのひな形を示しています。

サンプルコード4: リンク先のURLのチェック

add_filter('wp_targeted_link_rel', function($rel, $url) {
    if (filter_var($url, FILTER_VALIDATE_URL)) {
        return $rel . ' noreferrer noopener';
    }
    return $rel;
}, 10, 2);

このコードは、有効なURLに対してのみnoreferrernoopenerを追加します。

サンプルコード5: 他のフィルタとの連携

add_filter('wp_targeted_link_rel', function($rel, $url) {
    // 他のフィルタからのデータを使用する
    $additional_rel = apply_filters('custom_rel_filter', '');
    return $rel . ' ' . $additional_rel . ' noreferrer noopener';
}, 10, 2);

このコードでは、別のフィルタから取得した情報を使って、rel属性の値を動的に変更します。

この関数について質問する


上の計算式の答えを入力してください