web-dev-qa-db-ja.com

でレスポンシブ画像を無効にする方法 WP 4.4?

私は4.3.1インストールをすべてhttpsに正常に変換しました。 4.4にアップデートした後。新しいsrcset属性に問題があります。画像のsrc属性はhttpsを使用して設定されますが、srcset属性はhttpです。これにより、ブラウザはまったく画像を表示しません。

より良い修正を待っている間は、すべてのイメージがsrcset属性のみを持つように、src属性の設定をすべて無効にしたいと思います。それ、どうやったら出来るの?

38
brokkr

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が述べたように、問題は他の場所にあるかもしれません。

Httpsを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ではなく空の配列を返します。

44
birgire

これをするための最も簡単で最もきれいな方法は単にこれです:

add_filter( 'wp_calculate_image_srcset', '__return_false' );

他のほとんどの人々が言っ​​ていることを反省するために、srcsetは良い考えであり未来です(今のベストプラクティス)が、あなたのサイトを動かし続けるために迅速な修正が必要な場合.

ソース: WPコアブログ

13
Trevor

ほとんどの場合、srcset属性のURLに誤ってHTTPSが表示されているのは、すべての画像のURLがwp_optionsテーブルのsiteurlオプションの値を使用して作成されているためです。 HTTPS経由でフロントエンドにサービスを提供している場合は、これらの値も変更する必要があります([設定]> [全般])。

これがWordPressの問題追跡システムの関連チケットです: https://core.trac.wordpress.org/ticket/34945

7
joemcgill

これは1ピクセルより広いイメージを削除することによってsrcsetコードを無効にします。

add_filter( 'max_srcset_image_width', create_function( '', 'return 1;' ) );

長期的には、実際の問題を解決するようにしてください。それでも、これは迅速な修正が必要な場合には機能します。

5
Otto

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スキームを使用しています」と彼は述べました。

2
user2969141