[WordPress] สร้าง Custom Page Template

โดยปรกติแล้ว ในการสร้าง Page ขึ้นมานั้น จะมีการเรียกใช้ File page.php ในการแสดงผลให้ Page ทุก Page แต่ถ้าหากเราต้องการให้สร้าง Page นั้นแสดงผลไม่เหมือน Page อื่น ๆ ละ เราจะต้องทำยังไง

สร้าง page-slug.php เพื่อหน้านั้น

วิธีแรกคือ ให้สร้าง File ชื่อ page-xxx.php โดย xxx คือ slug หรือถ้าให้ดูอย่าง ๆ ง่าย slug จะคือคำที่วงไว้ในรูปครับ

[WordPress] สร้าง Custom Page Template

จากรูป slug คือ tester ให้เราสร้าง File ชื่อ page-tester.php ขึ้นมา หลังจากนี้หน้า (Pages) อื่น ๆ จะให้งาน File page.php แต่เฉพาะหน้า tester นี้จะเรียกใช้งาน File page-tester.php เท่านั้น คราวนี้ก็จะมีข้อสงสัยต่อว่า ถ้าเราต้องการมีอีก 2 หน้าที่ต้องการให้เหมือนกับหน้า tester ละ เราก็ต้องสร้าง page-xxx.php ขึ้นมาอีกสอง File แล้วถ้าเกิดมีอีก 10 หน้าละ เราคงมี File เต็ม Folder Theme เรากันเลยทีเดียว ดังนั้นมาดูวิธีที่สองกันครับ

สร้าง Custom Page Template

ใช่แล้วครับ วิธีที่สองนั้นก็คือ หัวข้อของเรานั่นเอง โดยวิธีสร้าง Custom Page Template นั้นก็ไม่ได้ยากอะไร สมมติเราสร้าง File ขึ้นมาว่า page_test.php เพื่อสร้าง Test Template ขึ้นมา ใน File page_test.php เราต้องขึ้นหัวด้วย

[php]
<?php
/*
Template name: XXXXX
*/
?>
[/php]

เราสามารถใส่ชื่อ Template ของเราว่าอะไรก็ได้ โดยแทนที่คำ XXXXX ในตัวอย่าง อย่างเช่น

[php]
<?php
/*
Template name: Test
*/
?>
[/php]

โดย Template ที่เราสร้าง จะปรากฎให้เราเลือกเวลาเราสร้าง หรือแก้ไข Page ในตำแหน่งดังรูป

[WordPress] สร้าง Custom Page Template

ดังนั้นถ้าเรามีหน้าซัก 10 หน้าที่ต้องการใช้ Template นี้ ก็แค่เลือกให้ใช้งานโดยไม่ต้องไปสร้าง File ให้เยอะแยะรก Theme ของเรา

// สร้าง File แล้ว อย่าลืมเขียน Code ลงไปด้วยนะครับ ไม่อย่างนั้นมันก็ไม่แสดงผลอยู่ดีนะ 😛


Posted

in

by

Comments

4 responses to “[WordPress] สร้าง Custom Page Template”

  1. […] ลองตามไปอ่านวิธีสร้าง Custom Template ได้ที่ [WordPress] สร้าง Custom Page Template […]

  2. iGammy Avatar
    iGammy

    รักจริงๆ เว็บๆนี้เนี้ย

  3. JackieNP Avatar
    JackieNP

    ขอบคุณครับ

  4. Piyanan Avatar
    Piyanan

    ขอบคุณมากๆเลยค่ะ

Leave a Reply

Your email address will not be published. Required fields are marked *