เมนูด้วยตัวเองเป็นอนุกรมวิธานใน WP หมายความว่าคุณสามารถค้นหาเมนูทั้งหมดในwp_terms
ตารางโดยเรียกใช้แบบสอบถามต่อไปนี้:
SELECT *
FROM wp_terms AS t
LEFT JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id
WHERE tt.taxonomy = 'nav_menu';
รายการเมนูเป็นประเภทโพสต์ที่กำหนดเองใน WP พวกเขาจะถูกเก็บไว้ในwp_posts
ตาราง คุณสามารถค้นหาทั้งหมดโดยใช้แบบสอบถามนี้:
SELECT *
FROM wp_posts
WHERE post_type = 'nav_menu_item';
ความสัมพันธ์ระหว่างเมนูและรายการเมนูจะถูกเก็บไว้ในwp_term_relationships
ตาราง เพื่อค้นหารายการทั้งหมดของเมนูเฉพาะคุณสามารถใช้แบบสอบถามนี้:
SELECT p.*
FROM wp_posts AS p
LEFT JOIN wp_term_relationships AS tr ON tr.object_id = p.ID
LEFT JOIN wp_term_taxonomy AS tt ON tt.term_taxonomy_id = tr.term_taxonomy_id
WHERE p.post_type = 'nav_menu_item'
AND tt.term_id = /*your menu ID*/;
ข้อมูลเกี่ยวกับเมนูที่เลือกในปัจจุบันอยู่ในwp_options
ตารางเป็นอาร์เรย์ PHP ต่อเนื่อง ตัวอย่างเช่นถ้าเราใช้ธีม TwentyEleven แล้วเราจะมีการบันทึกในwp_options
ตารางที่มีoption_name
คอลัมน์เท่ากับtheme_mod_twentyeleven
และคอลัมน์เท่ากับoption_value
...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}}
ที่นี่คุณจะเห็นเมนูที่มีterm_id
ค่าเท่ากับ 103 ถูกเลือกเป็น"primary"
เมนูในปัจจุบัน
หลักการสำคัญที่นี่คือเรามีบันทึกตัวเลือกแยกต่างหากสำหรับแต่ละธีม WP theme_mods_{your-theme-name}
ตัวเลือกดังกล่าวมีโครงสร้างชื่อเดียวกัน
PS: หากต้องการเปลี่ยนเมนูปัจจุบันในแผงผู้ดูแลระบบเพียงไปที่หน้าAppearance
» Menus
และเลือกเมนูที่คุณต้องการในTheme Locations
กล่องเมตา: