質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

910閲覧

Wordpress Twenty Seventeenのカスタムロゴ画像のサイズアップ

owowowsam

総合スコア18

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2019/05/31 00:34

編集2019/05/31 01:30

Wordpress Twenty Seventyを使用した子テーマのカスタムCSSを追加編集しています。

以下のようにstyle.cssに.custom-logo-linkクラスのカスタムロゴの画像を拡大しているのですが、
元々の読み込み画像が画質を落とされた画像になってしまってぼやけてしまいます。

CSS

1.custom-logo-link img { 2 top: -30px; 3 right: 8%; 4 width: auto; 5 max-height: 38vh !important; 6}

吐き出されたHTMLの記述一部(個人のものではないので一部公示できません)は以下のようになっています。
このなかのsizesの要素をいじれればいいとは思うのですが方法を知りません。

HTML

1<img width="288" height="250" src="wordpressのURL/wp-content/uploads/cropped-titleimage-4.png" class="custom-logo" itemprop="logo" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px">

そこでこの画像をもともとの画像オリジナルサイズで読み込ませる方法があれば知りたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi_takatsuk

2019/05/31 01:16

ご自分でどこまで調べられたでしょうか? WordPress付属のテーマとお見受けしますので、 WordPress Wordpress Twenty Seventy CSS 修正 などで検索すれば、いろいろと出てきますよ。 また、環境依存で、質問者さんでしか再現できないような状況の可能性もあるため、 (付属のテーマなので入れれるっちゃいれれるが、作業依頼レベルで時間かかる) 質問をするなら、CSSの中身と、該当のHTMLの記載は必須かと思います。
owowowsam

2019/05/31 01:31

失礼いたしました。CSSの中身とHTMLの記載を追記いたしました。もし方法をご存知でしたらご教示いただければ嬉しいです。
miyabi_takatsuk

2019/05/31 01:54

質問修正、大変にありがとうございます。 WordPressと該当テーマの導入しての検証までは難しいので、 もしかしたら、的を射られないかもしれませんが、回答させていただきます。
guest

回答2

0

自己解決

子テーマのfunctions.phpに以下のように記述しカスタムロゴのクロップサイズの最大サイズを変更したら解決しました。もともと250 x 250 pxだったものを600 x 600に変更しました。

php

1//画像サイズをオーバーライド 2function change_custom() { 3 4// Add theme support for Custom Logo. 5 add_theme_support( 'custom-logo', array('default-image'=> 'wordpressのURL/wp-content/uploads/titleimage.png','width'=> 600,'height'=> 600,) ); 6 7 // Add theme support for selective refresh for widgets. 8 add_theme_support( 'customize-selective-refresh-widgets' ); 9} 10// 親テーマの後に実行 11add_action( 'after_setup_theme', 'change_custom', 11);

投稿2019/05/31 10:21

編集2019/05/31 11:06
owowowsam

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi_takatsuk

2019/06/01 12:42

解決できてよかったですね! function.phpは、テーマによってはいろいろな処理をしているので、追っていくと、解決の糸口が見つかりやすいかもしれませんね。
guest

0

sizes属性によって、レスポンシブな画像の配置を行なっているようですね。
(max-width: 767px) 89vwの記述は、横幅767px以下のディスプレイに対しては、
画面横幅の89%のサイズにするという設定です。
同様にみるならば、最初二つに関しては、レスポンシブ対応のためそのままの方がよろしいかと思いますので、
一番右の、PC用と思われるものの数値を設定しましょう。
width、height属性に入っている数値をそのまま入れると、原寸表示になるはずです。
よって、下記でいかがでしょうか。

html

1<img width="288" height="250" src="wordpressのURL/wp-content/uploads/cropped-titleimage-4.png" class="custom-logo" itemprop="logo" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 288px, 250px, (max-width: 1920px) 288px, 250px"

最後の1920pxの設定は一応です。
(横幅1071pxだと、超えるパターンがけっこうありそうなので)

投稿2019/05/31 02:06

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

owowowsam

2019/05/31 02:16

ご回答ありがとうございます。もともとのテンプレートのHTMLの変更はできるだけしたくなく、style.cssをメインに編集する形で対応しています。このHTMLを定義している箇所がテーマファイルのどの箇所なのかまだご存知でしょうか。もしくはfunctions.phpなどからコントロールできるのであればいいと思うのですが。
owowowsam

2019/05/31 02:18

追記すみません。詳しく言いますと 読み込み元のファイルがオリジナルの画像でなく、自動でリサイズされたcropped-titleimage-4.pngというものになってしまうのをオリジナルに変更したいのです。
miyabi_takatsuk

2019/05/31 02:21 編集

なるほど・・・・。 回答修正させていただきます。 どうか、その旨(HTMLテンプレートは変えたくない)と、 であれば、元のテンプレート構文(PHP)を質問本文に記載ください。 src=""に書かれている画像パス出力の構文は変更しても大丈夫でしょうか? (オリジナルの画像を取得するという方法ならすぐ解決できそう)
miyabi_takatsuk

2019/05/31 02:23

おそらく、サムネイルを取得するような構文になっているはずなので・・・、 オリジナルを取得するようにすれば大丈夫なはず・・・。 どうか、該当箇所のphpをご記載お願いします。
owowowsam

2019/05/31 06:58

functions.phpに以下のような記述を見つけました。おそらくこれをいじれば変えられると思うのですがどう思われますでしょうか。 /** * Add custom image sizes attribute to enhance responsive image functionality * for content images. * * @since Twenty Seventeen 1.0 * * @param string $sizes A source size value for use in a 'sizes' attribute. * @param array $size Image size. Accepts an array of width and height * values in pixels (in that order). * @return string A source size value for use in a content image 'sizes' attribute. */ function twentyseventeen_content_image_sizes_attr( $sizes, $size ) { $width = $size[0]; if ( 740 <= $width ) { $sizes = '(max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px'; } if ( is_active_sidebar( 'sidebar-1' ) || is_archive() || is_search() || is_home() || is_page() ) { if ( ! ( is_page() && 'one-column' === get_theme_mod( 'page_options' ) ) && 767 <= $width ) { $sizes = '(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px'; } } return $sizes; } add_filter( 'wp_calculate_image_sizes', 'twentyseventeen_content_image_sizes_attr', 10, 2 );
miyabi_takatsuk

2019/05/31 08:01

これは・・・。 https://laboradian.com/change-srcset-sizes-img-on-wp/ この記事によると、srcset属性が定義され、それぞれのサイズに合った画像が使用されるように出力されるはずなんですが・・・。 add_filterメソッドの第二引数が、テーマの関数名が入っているようなので、 URLの記事にある通りに、まずやってみていただけないでしょうか?
owowowsam

2019/05/31 10:21

色々ありがとうございます。参考サイトも試してみましたが、改善されなかったのでいろいろ観察したところ読み込まれてた画像がカスタマイズ設定で最大250x250にクロップされたものでした。 そのクロップ最大サイズがfunctions.php内に定義されていましたので、それを元に 以下のように子テーマのfunctions.phpで最大600pxまでに設定できるようオーバーライドするようにしたところ解決しました! ヒントいただきありがとうございました! ```php //画像サイズをオーバーライド function change_custom() { // Add theme support for Custom Logo. add_theme_support( 'custom-logo', array('width'=> 600,'height'=> 600,'flex-width' => true,) ); // Add theme support for selective refresh for widgets. add_theme_support( 'customize-selective-refresh-widgets' ); } // 親テーマの後に実行 add_action( 'after_setup_theme', 'change_custom', 11); ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問