私は4.3.1インストールをすべてhttpsに正常に変換しました。 4.4にアップデートした後。新しいsrcset
属性に問題があります。画像のsrc
属性はhttpsを使用して設定されますが、srcset
属性はhttpです。これにより、ブラウザはまったく画像を表示しません。
より良い修正を待っている間は、すべてのイメージがsrcset
属性のみを持つように、src
属性の設定をすべて無効にしたいと思います。それ、どうやったら出来るの?
4.4でレスポンシブイメージのサポートを削除することを試みることができるいくつかのことがあります:
/**
* Disable responsive image support (test!)
*/
// Clean the up the image from wp_get_attachment_image()
add_filter( 'wp_get_attachment_image_attributes', function( $attr )
{
if( isset( $attr['sizes'] ) )
unset( $attr['sizes'] );
if( isset( $attr['srcset'] ) )
unset( $attr['srcset'] );
return $attr;
}, PHP_INT_MAX );
// Override the calculated image sizes
add_filter( 'wp_calculate_image_sizes', '__return_empty_array', PHP_INT_MAX );
// Override the calculated image sources
add_filter( 'wp_calculate_image_srcset', '__return_empty_array', PHP_INT_MAX );
// Remove the reponsive stuff from the content
remove_filter( 'the_content', 'wp_make_content_images_responsive' );
しかし@cybmetaが述べたように、問題は他の場所にあるかもしれません。
srcset
に強制するwp_calculate_image_srcset
フィルタを使ってデバッグすることもできますし、 quick-fix を試すこともできます
add_filter( 'wp_calculate_image_srcset', function( $sources )
{
foreach( $sources as &$source )
{
if( isset( $source['url'] ) )
$source['url'] = set_url_scheme( $source['url'], 'https' );
}
return $sources;
}, PHP_INT_MAX );
urlスキーム をhttps
に設定します。もう一つのアプローチは、それをスキームなしの//
にすることです。
他の set_url_scheme()
オプションについてはCodexをチェックしてください。
$source['url'] = set_url_scheme( $source['url'], null );
$source['url'] = set_url_scheme( $source['url'], 'relative' );
しかし、もっと深く掘り下げて根本的な原因を見つけることを試みるべきです。
以下のようにして、wp_calculate_image_srcset()
関数から先に救済することができます。
add_filter( 'wp_calculate_image_srcset_meta', '__return_empty_array' );
それからwp_calculate_image_srcset
またはmax_srcset_image_width
フィルターを使います。
同様にチケット #41895 に従って更新され、false/nullではなく空の配列を返します。
これをするための最も簡単で最もきれいな方法は単にこれです:
add_filter( 'wp_calculate_image_srcset', '__return_false' );
他のほとんどの人々が言っていることを反省するために、srcsetは良い考えであり未来です(今のベストプラクティス)が、あなたのサイトを動かし続けるために迅速な修正が必要な場合.
ソース: WPコアブログ
ほとんどの場合、srcset
属性のURLに誤ってHTTPSが表示されているのは、すべての画像のURLがwp_optionsテーブルのsiteurlオプションの値を使用して作成されているためです。 HTTPS経由でフロントエンドにサービスを提供している場合は、これらの値も変更する必要があります([設定]> [全般])。
これがWordPressの問題追跡システムの関連チケットです: https://core.trac.wordpress.org/ticket/34945
これは1ピクセルより広いイメージを削除することによってsrcsetコードを無効にします。
add_filter( 'max_srcset_image_width', create_function( '', 'return 1;' ) );
長期的には、実際の問題を解決するようにしてください。それでも、これは迅速な修正が必要な場合には機能します。
Settings/Generalで、あなたのWordPressアドレス(URL)とサイトアドレス(URL)が https://yourdomain.com に設定されていることを確認してください。
http://wptavern.com/how-to-fix-images-not-loading-in-wordpress-4-4-while-using-ssl を参照してください。
レスポンシブ画像をWordPressに取り込むための取り組みを主導したJoe McGillもフォーラムスレッドで回答し、Creeの提案が正しいことを確認しています。 「設定>一般」のURLで、HTTPSスキームを使用しています」と彼は述べました。