สร้างหน้าเว็บ Intro ทำให้ index.html ใช้ร่วมกับ WordPress

วิธีทำหน้า intro แบบไฟล์ index.html

กับ wordpress แยกออกมาโดยไม่ใช้ wp-content/themes/name/home.php หรือ front-page.php เพื่อในวาระพิเศษวันสำคัญต่างๆ โดยไม่ให้หน้าเว็บแบบพิเศษนี้มันทำงานซ้ำซ้อนกัน

จากปกติที่ เข้าหน้าเว็บแบบ domain.com/ มันจะเรียกไฟล์ที่ index.php ของ wordpress ให้อัตโนมัติ
คราวนี้เราจะให้ เข้าหน้าเว็บแบบ domain.com/ ให้มันเรียกไฟล์ index.html ก่อน แล้วค่อยเข้า index.php ของ wordpress ตามทีหลัง

ก่อนอื่นต้องเชค DirectoryIndex ของ apache ก่อนว่าเรียงการเรียก index.ต่างๆ ได้ตามต้องการหรือยัง
– ของ appserv เข้าไปเชคที่ \AppServ\Apache2.2\conf\httpd.conf
– ของ directadmin ก็เข้าไปเชคที่ /etc/httpd/conf/httpd.conf
แล้วแก้ให้ index.html มาก่อน index.php ก็เป็นอันใช้ได้
.
<IfModule dir_module>
DirectoryIndex index.htm index.html index.php
</IfModule>
.
อย่าลืมรีสตาร์ท apache อีกรอบ(appserv รีเครื่องเลยก็ได้ถ้ามันหลอนๆ)

intro บังคับ index.html ก่อน index.php ที่ wordpress

ให้เปิดไฟล์ /wp-includes/canonical.php ขึ้นมา ไปที่บรรทัด 364 (เทียบจาก wp 4.1)
หาโค้ดประมานนี้
..
// trailing /index.php
$redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']);
..
แก้.. /*?$| ..เป็น.. /$|
..
// trailing /index.php
$redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/$|', '/', $redirect['path']);
..
ก็สามารถใช้ index.htm ที่สร้างขึ้นเอง กับ index.php ของ wordpress ได้ล่ะ

**เรื่องการใช้งานที่ต้องระวัง
ใน theme ของ wordpress ให้ลิ้งค์ภายในของหน้าหลัก ให้มี index.php ต่อท้ายโดเมนเสมอ ไม่งั้นเวลาเปิด domain.com/ มันจะเรียกแต่ index.html แต่ถ้าใช้ rewrite_url ก็แก้เฉพาะลิ้งค์ภายในของหน้าแรกให้เรียก domain.com/index.php ก็ใช้งานได้ปกติ ส่วนอื่นๆ ไม่มีปัญหา

Blog | ,
Line it!