• 解決済 tomotomo

    (@tomotomo)


    お世話になります。

    Twenty Tenの子テーマを作成してfunctions.phpを編集しています。

    ヘッダーイメージのデフォルト画像を変更しようと思って、下記の部分を変更(階層構造は同じにしてファイル名だけ変更)しました。

    // No CSS, just IMG call. The %s is a placeholder for the theme template directory URI.
    if ( ! defined( 'HEADER_IMAGE' ) )
    define( 'HEADER_IMAGE', '%s/images/headers/path.jpg' );

    「%s」はテーマのURIが入るということなので、子テーマのフォルダに「images/headers/new_path.jpg」を設置しました。

    しかし、管理画面で確認すると「%s」は親テーマのURIになってしまっていて、子テーマの画像を読み込んでいないので画像が表示されません。

    子テーマのURIを読み込む「%s」のようなコードはあるのでしょうか?
    子テーマのURIを表示するコードがあれば教えていただきたいと思います。

    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    tomotomoさん、こんにちは。

    ヘッダーイメージを表示する際のパスは、内部的にwp-includes/theme.phpのget_theme_mod関数を呼び出していて、下記のコードで、 %s を変換して生成されています。

    return apply_filters( "theme_mod_$name", sprintf( $default, get_template_directory_uri(), get_stylesheet_directory_uri() ) );

    ここで、子テーマのURIを出すには、sprintfの第3引数として指定されている get_stylesheet_directory_uri() を利用してあげれば良いことになります。
    sprintf関数では、番号付け/交換がサポートされていて、このルールにしたがって記述すれば、子テーマのURIで表示させることが可能となります。

    define( 'HEADER_IMAGE', '%2$s/images/headers/path.jpg' );
    トピック投稿者 tomotomo

    (@tomotomo)

    jim912さん、こんにちは

    ご返答ありがとうございます!

    教えていただいたコードで無事表示できました!

    sprintf関数なども、いろいろアドバイスありがとうございました。

    助かりました!
    本当にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「Twenty Tenの子テーマでヘッダーイメージのデフォルト画像を変更したい」には新たに返信することはできません。