私はHemingwayテーマを使って新しいサイトを立ち上げようとしています。ヘッダーにロゴを追加したいです。テーマエディタは私がロゴをアップロードするために管理者パネルを使用するように私に望みます。これには2つの問題があります。まず、WordPressはファイルシステムへの書き込みアクセス権を持っておらず、そのようなアクセス権を付与しようとしているのではないので、このメソッドは失敗するはずです。次に、そのようなことをWebサイトに投稿する通常の方法は、適切な場所にある関連ファイルをサーバーにアップロードしてそれらにリンクすることです。しかし、ロゴはどこに行くのですか?
私のテーマでは、ロゴは次のコードで配置されています。
<?php if ( get_theme_mod( 'hemingway_logo' ) ) : ?>
<div class='blog-logo'>
<a href='<?php echo esc_url( home_url( '/' ) ); ?>' title='<?php echo esc_attr( get_bloginfo( 'title' ) ); ?> — <?php echo esc_attr( get_bloginfo( 'description' ) ); ?>' rel='home'>
<img src='<?php echo esc_url( get_theme_mod( 'hemingway_logo' ) ); ?>' alt='<?php echo esc_attr( get_bloginfo( 'title' ) ); ?>'>
</a>
</div> <!-- /blog-logo -->
私の見たところでは、2つの選択肢があります。
get_theme_mod
関数が重要だと思われますが、その定義を調べたときに従うべきコードのもつれがかなりあるように見えます(そしてPHP用の対話型デバッガについては聞いたことがありません)。これらの選択肢の中で、私は2番が非常に好ましいと思いますが、私はそれをするのに十分なコードを理解していません。
何をお勧めですか?
それなら、 子テーマ を作成することを強くお勧めします。それは本当に速く(5分もかからず)テーマを更新してもカスタマイズは失われません。変更するには、 'header.php'を自分の子テーマにコピーするだけです。 「images」という名前のフォルダも作成します。これがカスタムロゴの保存場所です。 24行目
<div class="header section" style="background-image: url(<?php if (get_header_image() != '') : ?><?php header_image(); ?><?php else : ?><?php echo get_template_directory_uri() . '/images/header.jpg'; ?><?php endif; ?>);">
画像が呼び出される場所ですので、それを変更するだけです。忘れずに
get_template_directory_uri() . '/images/header.jpg
に
get_stylesheet_directory_uri() . '/images/your-image.jpg
これが助けになれば幸いです。