WordPress 5.1のnoopener noreferrer強制付与問題につきまして

Simplicityの特徴 フォーラム 要望・機能追加など WordPress 5.1のnoopener noreferrer強制付与問題につきまして

このトピックには6件の返信が含まれ、2人の参加者がいます。4 ヶ月、 3 週間前 きく さんが最後の更新を行いました。

  • 投稿者
    投稿
  • #61380

    きく

    初めまして。きくというものです。

    https://wp-cocoon.com/community/blog-manages/wordpress-5-1%E3%81%AEnoopener-noreferrer%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

    上記質問と同様にWordPress 5.1にしてから投稿記事にnoopener noreferrerが強制付与される問題で悩んでおります。
    ただ私の場合phpが分からずどのようなソースコード書けば強制付与回避できるのか分からない状態です。

    https://nendeb.com/785

    参考になるかどうか分かりませんが上記を参考に以下のようなコード組んで見ました

    //強制付与されるnoopener及びnoreferrer削除
    
    function noopener_wp_targeted_link_rel( $rel_value, $link_html ){
     
        if( false === strpos( $link_html, home_url() ) ){
            $rel_value = 'noopener';
        }
        return $rel_value;
    }
    remove_filter( 'wp_targeted_link_rel', 'noopener_wp_targeted_link_rel', 10, 2 );
    
    function noreferrer_wp_targeted_link_rel( $rel_value, $link_html ){
     
        if( false === strpos( $link_html, home_url() ) ){
            $rel_value = 'noreferrer';
        }
        return $rel_value;
    }
    remove_filter( 'wp_targeted_link_rel', 'noreferrer_wp_targeted_link_rel', 10, 2 );

    正直phpには疎いので全く分からないのですがやりたいこととしては
    上記リンクに乗っていたソースコード参考にして
    noopenerとnonoreferrerが自分のHP以外のURLの時強制付与されないようにするといったことです。

    ですがこのソースコードでは強制付与が止まらず悩んでいるところです。

    なのでもしサポート外でありましたら誠に申し訳ないのですが
    noopenerとnonoreferrerの強制付与回避できるようなソースコードご提示いただくこと可能でしょうか?
    誠に差し出がましいお願いだとは存じておりますが何卒よろしくお願いいたします。

    後一応要望・機能追加項目としてトピック立ち上げた点としましては
    今後のアップデートでsimplicity側でnoopenerとnonoreferrerの強制付与回避機能
    お願いしたく立ち上げさせていただきました。

    以上でございますが何卒お願いできれば幸いでございます。

  • #61381

    きく

    追記

    時期尚早かもしれませんが自己解決したのかもしれないのでご連絡差し上げました。
    以下のソースコードでnoopener及びnoreferrer強制付与止めること出来ました。

    //強制付与されるnoopener及びnoreferrer削除
    
    function no_wp_targeted_link_rel( $rel_value, $link_html ){
     
        if( false === strpos( $link_html, home_url() ) ){
            $rel_value = '';
        }
        return $rel_value;
    }
    add_filter( 'wp_targeted_link_rel', 'no_wp_targeted_link_rel', 10, 2 );

    ただ私も幾分素人なのでこのソースであっているかという確信はありません。
    もしよりよいコードありましたらご提示願えますと幸いです。

    以上、追記となりますが何卒よろしくお願い申し上げます。

  • #61385
    わいひら
    わいひら
    キーマスター

    そのコードで問題ないかと思います。
    個人的には、noreferrerがあるとリファラを取れなくなるので困りますが、noopenerはあった方がセキュリティ的に良いのかなと思います。

    • この返信は4 ヶ月、 3 週間前に わいひら わいひら さんが編集しました。
  • #61387

    きく

    わいひら様

    お世話になっております。きくです。
    お返事いただきありがとうございます。

    個人的に気になったのですが
    参考サイト様ではnofollow使っていますがnofollowはSEO対策で使われるものであり
    自サイトかそれ以外かで条件分岐必要ですが
    今回は強制付与されるnoopener及びnoreferrerの回避が目的のため
    条件分岐消し以下のコードにしました。

    //強制付与されるnoopener及びnoreferrer削除
    
    function no_wp_targeted_link_rel($rel_value){
        $rel_value = '';
        return $rel_value;
    }
    add_filter( 'wp_targeted_link_rel', 'no_wp_targeted_link_rel', 10, 2 );

    またnoopenerについてはセキュリティで必要なのはその通りだと思います。
    上記コードの空欄にnoopener付与すればそのまま自動で付与される形になりますので
    必要があれば使っていこうと思います。

    ただほぼないとは思いますがアフィリエイトリンクにnoopener付くと
    ASP側にアフィリエイトリンク改造とみなされる可能性もゼロとは
    言いかねないので個人的には手動でつけていこうと考えております。

    以上ではありますが他、過不足あればご指摘願えれば幸いです。
    何卒よろしくお願い申し上げます。

  • #61394
    わいひら
    わいひら
    キーマスター

    返信は、あくまで一般論なので、好きな設定で良いかと思います。

    一応、Simplicityはnoreferrerだけを取り除くようにしました。

    //強制付与されるnoreferrer削除
    add_filter( 'wp_targeted_link_rel', 'wp_targeted_link_rel_custom', 10, 2 );
    if ( !function_exists( 'wp_targeted_link_rel_custom' ) ):
    function wp_targeted_link_rel_custom( $rel_value, $link_html ){
      $rel_value = str_replace(' noreferrer', '', $rel_value);
      return $rel_value;
    }
    endif;
  • #61395
    わいひら
    わいひら
    キーマスター

    Simplicityを最新版の2.7.5にすると、処理が上書きされてしまう可能性があるので、処理の優先度を下げておくと良いかもしれません。

    add_filter( 'wp_targeted_link_rel', 'no_wp_targeted_link_rel', 11, 2 );

  • #61396

    きく

    わいひら様

    お世話になっております。きくです。
    ご要望聞いてくださり誠に感謝いたします!

    Simplicity最新バージョンにして処理の優先度も下げたところ
    問題なく動くこと確認いたしました。

    またこの度は長々と付き合って下さり申し訳ございません。
    また何かありましたらよろしくお願い致します。

トピック「WordPress 5.1のnoopener noreferrer強制付与問題につきまして」への新規返信追加は締め切られています。

スポンサーリンク
アドセンス(大)
アドセンス(大)