わけあってWordPressのCocoonテーマで、ヘッダーロゴのリンク先を、ログインユーザに応じてデフォルトのサイトURLから別のURL変更する必要があり、親テーマのPHPを少しいじったので忘れないようにメモ。
[wp-content] -> [themes] -> [cocoon-master] -> [header.php] をいじるのだろうと思っていたら、そこから [tmp/body-top.php] を呼び出していて、そこからさらに [tmp/header-container.php] を呼び出していて、そこからさらに [generate_the_site_logo_tag()] を呼び出していて、そこでサイトロゴを生成していました。
generate_the_site_logo_tag()関数は [cocoon-master] -> [lib] -> [html-forms.php] の中にあり、411行目にあった以下のコード部分を書き換えることで、目的の動作を実装できました(Cocoonバージョン2.4.3時点)。
$home_url = user_trailingslashit(get_home_url());
例えば、ログイン状態を判定してリンク先を変更する場合は、以下のように書き換えます。
if (is_user_logged_in()) {
$home_url = 'URL A';
} else {
$home_url = 'URL B';
}
header.php でログイン状態を判定してリダイレクトするだけでも十分だったかもしれません。