wordpress หากเราเขียนธีมขึ้นมาใช้เองนั้น อาจมีโครงสร้างของ CSS ที่แตกต่างกันออกไป ต่างคนก็ต่างสไตล์การเขียน จึงยากที่จะกำหนดค่าให้เหมือนกันทุกธีมทุกครั้ง หากเราใช้งานฟังก์ชั่นไม่ถูก หรือไม่คล่องนั้น อาจจะต้องกำหนดค่าที่เป็น Static ทำให้ลำบากในการปรับปรุงหรือเปลี่ยนแปลงครับ

ฟังก์ชั่นที่ใช้ในการควบคุมเมนู Custom Menu ของ wordpress คือ ฟังก์ชั่น wp_nav_menu หากเราใช้มันเป็น มันเหมือนเสือติดปีกดีๆ นี่เอง มาดูพารามิเตอร์ของฟังก์ชั่นนี้กันก่อน
$defaults = array(
'theme_location' => '',
'menu' => '',
'container' => 'div',
'container_class' => '',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0,
'walker' => ''
);
wp_nav_menu( $defaults );
มันมีพารามิเตอร์เยอะมาก เอาแค่ที่ใช้จริงๆ มีไม่กี่ตัวที่ผมใช้ประจำ ก็มีตามตัวอย่างด้านล่างครับ
wp_nav_menu( array( 'theme_location' => 'top-menu' , 'menu_class' => 'sf-menu' , 'container' => 'none'));
- theme_location : กำหนดว่าให้ส่วนไหนแสดง ไปกำหนดได้ใน Appearance > Menus แล้วตั้งค่าเอา
- menu_class : บางทีก็จะใช้ menu_id ขึ้นอยู่กับว่า css เราเขียนอะไรมา
- container : เป็นค่า none คือ ยกเลิกการใช้แท็กของ wordpress ให้ใช้แท็ก CSS ของเราเองครับ
- ค่าอื่นๆ ก็ใช้บ้างในบางโอกาสครับ ขึ้นอยู่กับ theme นั้นๆ
เมื่อเรา config ตัวเมนูไปแล้ว ก็ต้องมากำหนดค่าที่ไฟล์ functions.php ด้วยครับ
function register_my_menus() {
register_nav_menus(
array(
'top-menu' => __( 'Top Menu' )
)
);
}
add_action( 'init', 'register_my_menus' );
ที่เหลือก็แค่ไปใช้งาน Appearance > Menus ให้เป็นก็จบขั้นตอนแล้วครับ ไม่ต้องไปใช้ plugin ให้เว็บไซต์เราต้องโหลดงานหนักกว่าเดิม แค่นี้ก็สามารถใช้ Custom Menu ร่วมกับ Theme ที่เราเขียนเอง ได้อย่างสบายใจแล้วล่ะ
บทความโดย tsupaman

Comments