cocoonフック調査~header_site_logo_urlの使い方と活用例
タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回はヘッダのサイトロゴに張られているリンクを変更できるフィルターフック
👉header_site_logo_url
です
フックの概要
| フック名 | 発火タイミング |
|---|---|
| header_site_logo_url | ヘッダ描画時 |
発火条件
ヘッダのロゴが表示されるタイミングで無条件に発火します
使いどころ
デフォルトでは、ロゴのリンク先は常に home_url()(=トップページ)になっていますが、このフックを使うと任意のURLに変更できます。
例えば以下のような使い方ができそうです。
・特定のページではロゴをトップではなく「サービス紹介ページ」にリンクさせたい
・マルチサイト構成で、サイトごとにロゴリンク先を変えたい
・一時的にキャンペーンページへ誘導したい
下記の記事で紹介したsite_logo_urlはヘッダとフッタを同時に変更しますが、この記事で紹介するheader_site_logo_urlはヘッダのみを対象とします。
apply_filters呼び出し元のソースコード
lib/html-forms.php
$home_url = apply_filters('header_site_logo_url', $home_url);
tmp/mobile-logo-button.php
$home_url = apply_filters('mobile_header_site_logo_url', $home_url);
引数
$home_url:(string)リンク先URL
カスタマイズコード例
function customize_header_site_logo_url ( $home_url ) {
if(~~条件~~) {
$home_url = 'https://google.com';
}
return $home_url;
}
add_filter('header_site_logo_url', 'customize_header_site_logo_url' );
このように条件分岐を加えることで、ページ単位・投稿タイプ単位など柔軟に切り替え可能です。
注意点
・$home_url はテーマ内部で直接使われるため、不正なURLや空文字を返すとリンク切れになります
・サイト全体で一律に変更したい場合は、is_front_page() などの条件分岐を外してシンプルに返す形でOKです
・フッタも同時に変更したい場合はsite_logo_urlを使った方が便利です
まとめ
・site_logo_url フックは、Cocoonのヘッダーのロゴリンク先を自由に変更できるフィルターです。
・特定のページや状況でトップ以外に誘導したいときなどに使うと便利です
・マルチサイト運用やキャンペーン導線設計などで役立つと思います