3

Wordpress 4.4srcsetでは、画像は自動的に属性を取得します。これに関する私の問題は次のとおりです(この質問を書いているときに解決しました。以下の回答を参照してください):

  • すべてを httpsに転送するために、 posts テーブルsrc="http://...内のすべての参照を(後で両方のプロトコルをサポートするために に変更しました);に置き換えました。src="https://...src="//...
  • すべての投稿の画像は、src属性で正しい URL を取得します。
  • ただし、srcset属性を取得するすべての画像では、その中の URL には常にhttp://参照が含まれています。

なぜこれが起こるのですか?https://これらの URL が新しく更新された先頭を取得しないのはなぜですか?

4

3 に答える 3

4

wp-includesフォルダー内でしばらく検索した後wp_calculate_image_srcset、ファイル内のメソッドmedia.phpは次の 2 行を使用します。

$image_baseurl = _wp_upload_dir_baseurl();
$image_baseurl = trailingslashit( $image_baseurl ) . $dirname;

これ$image_baseurlにより、実際にはsrcset属性の新しい URL が形成されます。つまり、URL 全体がwp_postsテーブルにあり、src属性で使用されている場合でも、その先頭は使用されません。

これは、wp_optionsテーブル内のベース URL がまだ にあるhttp://場合、画像はそのプロトコルを取得し、https でナビゲートするときにブラウザによってデフォルトで表示されないことを意味します。

option_valueこれを解決するには、wp_options表内の URLをhttps://またはに変更するだけ//です。これは、単一のクエリで実行できます。

UPDATE `wp_options`
 SET `option_value` = replace(option_value, 'http://', '//')
 WHERE `option_name` IN ('siteurl', 'home')
于 2016-02-17T15:33:34.980 に答える