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

wp-menu-01
ฟังก์ชั่นที่ใช้ในการควบคุมเมนู 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