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

สร้างหน้าเว็บ 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 ก็ใช้งานได้ปกติ ส่วนอื่นๆ ไม่มีปัญหา

 April 21, 2015

 Blog | # #

qrcode
Facebook Facebook X / Twitter Twitter Telegram Telegram Pinterest Pinterest Email Email

Re-commend-เด็ด ๆ ต่อจาก สร้างหน้าเว็บ Intro ทำให้ index.html ใช้ร่วมกับ WordPress

  • Magicz?~