ในการทำ WordPress Theme นั้น Template หลัก ๆ ที่เรามีการใช้งาน จะมีส่วนของ header ซึ่งจะมี get_header()
, footer ซึ่งจะมี get_footer()
และ sidebar ที่จะมี get_sidebar()
แล้วถ้าเราจะสร้าง Template ส่วนอื่น ๆ นอกเหนือจากนี้ละ จะมีวิธีการใช้งานอย่างไร
WordPress : get_template_part
ยกตัวอย่างเป็นส่วนของเมนู หรือส่วนของ nav เพราะคิดว่าเป็นส่วนที่ทุกเว็บน่าจะมีอยู่แล้ว เราก็สร้างไฟล์ชื่อ nav.php
(จะตั้งชื่อว่า abc.php
, navigation.php
หรือ gee.php
ก็แล้วแต่จะตั้งชื่อกันนะครับ แต่ตั้งให้ชื่อสื่อความหมายจะดีกว่านะครับ) โดยในไฟล์ nav.php
นั้น เราก็เขียน code สำหรับเมนูเราตามปรกติ เช่น
[php]
<div id="nav">
<?php wp_nav_menu( array(‘menu’ => ‘Main Menu’, ‘container’ => ”, ‘menu_id’ => ‘mainnav’, ‘menu_class’ => ‘clearfix’,’depth’=>’1′) ); ?>
</div>
[/php]
คราวนี้ตำแหน่งที่เราต้องการจะใส่เมนูลงไป ก็ใส่ code ไปว่า
[php]
<?php get_template_part(‘nav’); ?>
[/php]
ทีนี้เวลาเราจะแก้ไขเมนู เราก็แก้ไขที่ไฟล์ nav.php
ที่เดียว แล้วทุกที่ที่ใช้งานเมนูจาก nav.php
ก็จะเปลี่ยนตาม
แต่สมมติในหน้า single.php
เราอยากจะใช้เมนูอีกแบบ เราสามารถสร้างไฟล์ชื่อ nav-single.php
มาเพื่อใช้งานเฉพาะหน้า single.php
ก็ได้ โดยจะเรียกใช้งานแบบนี้ครับ
[php]
<?php get_template_part(‘nav’,’single’); ?>
[/php]
WordPress : get_template_part กับ child theme
แต่สิ่งสำคัญของ get_template_part
นั้นคือการใช้ร่วมกับบรรดา child theme ทั้งหลาย เพราะ get_template_part
จะมีหลักการค้นหาไฟล์แบบนี้ครับ สมมติเราเขียน code ว่า
[php]
<?php get_template_part(‘loop’,’index’); ?>
[/php]
มันก็จะไปหา loop-index.php
ใน child theme ก่อนว่ามีมั้ย ถ้าไม่มีมันจะหา loop.php
ใน child theme ถ้าไม่มีอีกจึงจะไปหา loop-index.php
และ loop.php
ใน theme หลักตามลำดับ เขียนเรียงลำดับได้ดังนี้
loop-index.php
ใน child themeloop.php
ใน child themeloop-index.php
ใน theme หลักloop.php
ใน theme หลัก
ลองนำไปประยุกต์ใช้งานกันดูนะครับ ^^
Leave a Reply