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

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

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
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

by mindphp » 29/12/2019 11:29 pm

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

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

by ThaiWP » 29/12/2019 11:58 am

สามารถใช้ Force HTTPS ใน .htaccess โดยไม่ต้องแก้โค้ดได้รึเปล่าครับ ?

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

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

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

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

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

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

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

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