web-dev-qa-db-ja.com

ヘッダーにロゴを使用する方法

私は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' ) ); ?> &mdash; <?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つの選択肢があります。

  1. ここでコードを修正して私のロゴをハードコードしてください。ここでの問題は、私がコードを修正すればするほど、私が遭遇すると期待できる保守性の問題が増えることです。
  2. このコードがロゴを期待する場所を見つけてください。 get_theme_mod関数が重要だと思われますが、その定義を調べたときに従うべきコードのもつれがかなりあるように見えます(そしてPHP用の対話型デバッガについては聞いたことがありません)。

これらの選択肢の中で、私は2番が非常に好ましいと思いますが、私はそれをするのに十分なコードを理解していません。

何をお勧めですか?

1
Scott Severance

それなら、 子テーマ を作成することを強くお勧めします。それは本当に速く(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

これが助けになれば幸いです。

1
Pieter Goosen