Page 1 of 1

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

Posted: 05/08/2019 8:12 am
by mindphp
แก้ปัญหา 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' ); 

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

Posted: 03/09/2019 2:55 pm
by mindphp
ถ้าใครอัพเกรดเวอร์ชั่น ใหม่ อย่างลืมมาปรับตรงจุดนี้อีกครั้ง

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

Posted: 07/09/2019 2:56 pm
by mindphp
ล่าสุด เวอร์ชั่น WordPress 5.2.3 ยังคงมี ปัญหานี้อยู่
แต่ตามหัวข้อกระทู้กับต่อไป

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

Posted: 07/10/2019 1:29 pm
by LEG
ตามครับ

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

Posted: 29/12/2019 11:58 am
by ThaiWP
สามารถใช้ Force HTTPS ใน .htaccess โดยไม่ต้องแก้โค้ดได้รึเปล่าครับ ?

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

Posted: 29/12/2019 11:29 pm
by mindphp
ThaiWP wrote: 29/12/2019 11:58 am สามารถใช้ Force HTTPS ใน .htaccess โดยไม่ต้องแก้โค้ดได้รึเปล่าครับ ?
ปัญหานี้เกิดได้กับ ทำ https โดย ใช้ cloudflare
สำหรับ Wordpress 5.2 ใช้ .htaccess ช่วยยังไม่ได้

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

Posted: 01/01/2020 4:05 pm
by Ritikhose
Great Solution