หลายๆ คนใช้ WordPress เพื่อสร้างเว็บไซต์ที่ใช้รูปภาพ ซึ่งโดยปกติแล้วจะต้องโหลดรูปภาพแนบที่อัปโหลดจำนวนมากบนหน้าเว็บ แม้ว่าพื้นที่ของ WordPress จะสามารถระบุไฟล์แนบเป็นที่อยู่ URL ที่สมบูรณ์ได้ แต่ก็ยังไม่เพียงพอที่จะแก้ไขข้อจำกัดของกลไกเธรดการดาวน์โหลดของเบราว์เซอร์ ด้านล่างนี้คือวิธีแก้ปัญหาของฉันสำหรับ WordPress
ก่อนที่จะพูดถึงวิธีการนี้ เรามาทำความเข้าใจก่อนว่าเธรดการดาวน์โหลดของเบราว์เซอร์คืออะไร กล่าวง่ายๆ ก็คือ เมื่อคุณเปิดเว็บเพจด้วยเบราว์เซอร์ หากรูปภาพ สไตล์ js ฯลฯ ทั้งหมดบนเพจอยู่ภายใต้ชื่อโดเมนเดียวกัน เบราว์เซอร์จะต้องขอไฟล์ที่ดาวน์โหลดเมื่อร้องขอเซิร์ฟเวอร์ . ขออันถัดไป (หรือคุณสามารถขอดาวน์โหลดหลายรายการพร้อมกันแล้วส่งคำขอต่อไปได้ เบราว์เซอร์ที่แตกต่างกันจะแตกต่างกันไป) หากรูปภาพ สไตล์ js และไฟล์อื่นๆ ในเพจนี้ ล้วนอยู่ในชื่อโดเมนและมีมากเกินไป การเปิดหน้าเว็บก็จะต้องรอคิวนาน (ตัวอย่างเช่น บรอดแบนด์ 2M ของคุณไม่ได้เร็วกว่าบรอดแบนด์ 4M ของคุณมากนัก)
วิธีแก้ไขคือต้องดาวน์โหลดข้อมูลเพิ่มเติมพร้อมกัน จำกัดปัญหาข้อจำกัดภายใต้ชื่อโดเมนเดียวกัน เราสามารถใช้ชื่อโดเมนหลายชื่อในการแก้ปัญหาได้
หากพื้นที่ของคุณอนุญาตให้เชื่อมโยงไดเรกทอรีย่อยหลายรายการ คุณสามารถตั้งชื่อโดเมนย่อยหลายชื่อให้เชื่อมโยงกับไฟล์แนบ WordPress wp-content/uploads/
ฉันผูกโดเมนย่อยของฉัน http://pic0.tsov.net/ และ http://pic1.tsov.net/ กับ wp-content/uploads/
ในเวลาเดียวกัน ให้ระบุชื่อโดเมนย่อยที่คุณตั้งไว้ใน "การตั้งค่า" และ "สื่อ" ในพื้นหลัง (หากบล็อกของคุณมีข้อมูลอยู่แล้ว คุณสามารถใช้ phpmyadmin เพื่อรันคำสั่งและแปลงไฟล์แนบได้ในคราวเดียว)
ตัวอย่างเช่น การตั้งค่าของฉันคือ: (ที่อยู่ URL แบบเต็มของไฟล์: http://pic.tsov.net )
จากนั้นเพิ่มโค้ดต่อไปนี้ลงในไฟล์ function.php ใต้ธีมของคุณ
<?php
ฟังก์ชั่นการตั้งค่า_pic_tsov_net($เนื้อหา) {
$pattern="/<img******************/"; (ดังนั้นจึงไม่สามารถแสดงโค้ดทั้งหมดได้ที่นี่ โปรดคลิกเพื่อดาวน์โหลดโค้ดที่สมบูรณ์)
preg_match_all($รูปแบบ,$เนื้อหา,$การจับคู่);
$iNumberOfPics = จำนวน($match[0]);
สำหรับ ( $i=0; $i < $iNumberOfPics ; $i++ ){
$tsovnet= str_replace('pic.tsov.net','pic'.rand(0,1).'.tsov.net',$match[1][$i]);
$content=str_replace($match[1][$i],$tsovnet,$content);
-
ส่งคืนเนื้อหา $;
-
add_filter('the_content','setting_pic_tsov_net',12);
-
ฟังก์ชั่นของโค้ดด้านบนคือการสุ่มแทนที่เส้นทางรูปภาพในบันทึกของคุณ
หรือ http://pic0.tsov.net
ทั้งหมดเชื่อมโยงกับ wp-content/uploads/
หากคุณมีภาพไม่มากในหน้าเดียว เพียงแต่อย่ามีชื่อโดเมนย่อยมากเกินไป (การแก้ไขชื่อโดเมนก็ต้องใช้เวลาเช่นกัน) โดยทั่วไป 2-3 ก็เพียงพอแล้ว คุณสามารถคำนวณโดยประมาณได้ด้วยวิธีนี้: โดเมนย่อยสามารถดาวน์โหลดได้ 5 ครั้งพร้อมกัน ดังนั้นคุณต้องดาวน์โหลดจำนวนเท่าใดในเวลาเดียวกัน หารด้วย 5 เพื่อให้ได้จำนวนโดเมนย่อยที่คุณต้องการใช้
ข้างต้นเป็นเพียงวิธีการเริ่มต้นของฉัน ต่อมาฉันพบว่าเส้นทางของรูปภาพที่ใช้ตัวเลขสุ่ม (0, 1) มักจะเปลี่ยนแปลงซึ่งอาจไม่ดีสำหรับเครื่องมือค้นหา วิธีที่ดีที่สุดคือแก้ไข ดังนั้นฉันจึงใช้มัน แบบนี้:
$tsovnet= str_replace('pic.tsov.net','pic'.substr(decbin(md5($match[1][$i])),-1).'.tsov.net',$match[1 ][$i]);
ฉันจะไม่อธิบายประโยคนี้มันยุ่งยากเกินไป แต่ในที่สุดฉันก็บรรลุเป้าหมายสูงสุดของฉัน
แน่นอนว่าข้างต้นเกี่ยวข้องกับปัญหาการเพิ่มประสิทธิภาพอื่นๆ มากมาย ดังนั้นฉันจะไม่ลงรายละเอียด
นอกจากนี้: ตัวอย่างเช่น หากคุณชี้ชื่อโดเมนย่อยไปยังพื้นที่อื่น ทุกครั้งที่คุณเผยแพร่บันทึกพร้อมไฟล์แนบ ไฟล์แนบนั้นจะถูกซิงโครไนซ์กับพื้นที่อื่น (สำหรับการซิงโครไนซ์นี้คุณสามารถเขียนโปรแกรมเพื่อดาวน์โหลดด้วย 404 และวิธีการแปลก ๆ อื่น ๆ )
พูดมากดูแล้วทุกคนก็ต้องงง ถ้าอย่างนั้นเรามาสัมผัสถึงผลกระทบหลังการใช้งานกัน
ข้อความต้นฉบับ: http://tsov.net/category/album/
ขอขอบคุณ simonsu สำหรับการสนับสนุนของคุณ