cocoonフック調査~cocoon_meta_referrer_contentの使い方と活用例

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は<meta name=”referrer” content=”XXXX”>のcontentの値を書き換えることができる
cocoon_meta_referrer_content
です。
フックの概要
フック名 | 発火タイミング |
---|---|
cocoon_meta_referrer_content | <header>で<meta name=”referrer”>を出力するタイミング |
フックの発火条件
このフックは、ページが表示されるすべてのタイミングで無条件に1回発火します。
使いどころ
<meta name="referrer">
は、ユーザーが外部リンクをクリックしたときにどの程度リファラ(参照元URL)を送信するかを指定するメタタグです。
Cocoonでは「Cocoon設定 → SEO」内のメタタグ設定で指定した値がそのまま content
属性に使われますが、条件によって出力を切り替えたい場合にこのフックが使えます。
例:以下のような条件で出力内容を動的に変更可能
・通常ページ:no-referrer-when-downgrade
・会員限定ページや機密性の高いページのみ:no-referrer
これにより、外部サイトにURL構造を漏らさないように制御することが可能になります。
apply_filters呼び出し元のソースコード
functions.php
<meta name="referrer" content="<?php echo apply_filters('cocoon_meta_referrer_content', get_meta_referrer_content()); ?>">
get_meta_referrer_content() の戻り値(設定画面で指定された値)をもとに、フィルターで上書きできる構造になっています。
引数
$meta_refferrer_content:(string)metaタグのcontentに設定する値
カスタマイズコード例
以下は、特定の条件(例:スラッグが「private」の固定ページ)で no-referrer
に変更する例です。
function customize_meta_referrer_content( $meta_refferrer_content ) {
if ( is_page('private') ) {
$meta_referrer_content = 'no-referrer';
}
return $meta_refferrer_content;
}
add_filter( 'cocoon_meta_referrer_content', 'customize_meta_referrer_content' );
このコードを functions.php に追加することで、該当ページでは以下のようなmetaタグが出力されます:
<meta name="referrer" content="no-referrer">
注意点
content 属性には referrer policy で有効な値を指定する必要があります(例:no-referrer, strict-origin, origin-when-cross-origin など)。
意図せずリファラが送信されなくなると、一部の外部サービスで正常に機能しない場合もあるので、設定は慎重に行いましょう。
まとめ
cocoon_meta_referrer_content は、Cocoonが出力する タグの content 値をカスタマイズするためのフックです。
ページごとに参照元ポリシーを切り替えたいケースや、プライバシー配慮が必要な場合に活用できる便利な仕組みです。
Cocoon設定では一律の指定しかできませんが、このフックを使えば柔軟な出力制御が可能になります。