แก้ปัญหา Wordpress: ภาพไม่ขึ้น เมื่อเปลี่ยนเว็บ จาก http เป็น https เพราะ srcset

Forum rules
คำถามหมวดนี้ ควรระบุ รายละเอียดของ Server OS, เวอร์ชั่น ของ PHP, CMS ที่ท่านใช้
รวมถึง Hosting หรือ Control Panel Hosting

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: แก้ปัญหา Wordpress: ภาพไม่ขึ้น เมื่อเปลี่ยนเว็บ จาก http เป็น https เพราะ srcset

Re: แก้ปัญหา Wordpress: ภาพไม่ขึ้น เมื่อเปลี่ยนเว็บ จาก http เป็น https เพราะ srcset

Post by mindphp » 07/09/2019 2:56 pm

ล่าสุด เวอร์ชั่น WordPress 5.2.3 ยังคงมี ปัญหานี้อยู่
แต่ตามหัวข้อกระทู้กับต่อไป

Re: แก้ปัญหา Wordpress: ภาพไม่ขึ้น เมื่อเปลี่ยนเว็บ จาก http เป็น https เพราะ srcset

Post by mindphp » 03/09/2019 2:55 pm

ถ้าใครอัพเกรดเวอร์ชั่น ใหม่ อย่างลืมมาปรับตรงจุดนี้อีกครั้ง

แก้ปัญหา Wordpress: ภาพไม่ขึ้น เมื่อเปลี่ยนเว็บ จาก http เป็น https เพราะ srcset

Post by mindphp » 05/08/2019 8:12 am

แก้ปัญหา Wordpress: ภาพไม่ขึ้น เมื่อเปลี่ยนเว็บ เป็น https เพราะ srcset ของ tag img ในการแสดงผล ไม่ยอมเปลี่ยน จาก http เป็น https
ทั้งๆที่เรา กำหนด siteurl เป็น httpsซึ่งจริงๆมันควรจะเปลี่ยนให้ ทั้งหมดของโดเมนเราแล้ว แต่ดันมีโค้ดบางส่วนที่มีการเช็คเงื่อนไขของฟังก์ชั่น wp_calculate_image_srcset เปลี่ยนได้ไม่หมด
ปัญหานี้เกิดได้กับ ทำ https เอง และ ใช้ cloudflare

วิธีแก้ เข้าไปที่
wp-includes/media.php
ค้นหา

Code: Select all

    if ( is_ssl() && 'https' !== substr( $image_baseurl, 0, 5 ) && parse_url( $image_baseurl, PHP_URL_HOST ) === $_SERVER['HTTP_HOST'] ) {
        $image_baseurl = set_url_scheme( $image_baseurl, 'https' );
    }
 


เพิ่มโค้ด

Code: Select all

 $image_baseurl = set_url_scheme( $image_baseurl, 'https' ); 

หลังบรรทัดที่เจอ จะได้โค้ดที่สมบูรณ์ ดังนี้

Code: Select all

    if ( is_ssl() && 'https' !== substr( $image_baseurl, 0, 5 ) && parse_url( $image_baseurl, PHP_URL_HOST ) === $_SERVER['HTTP_HOST'] ) {
        $image_baseurl = set_url_scheme( $image_baseurl, 'https' );
    }
    # ส่วนที่เราเพิ่มเข้าไป
    $image_baseurl = set_url_scheme( $image_baseurl, 'https' ); 

Top