답변:
메뉴 자체는 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
메타 상자 에서 필요한 메뉴를 선택하십시오 .
term_id
하시겠습니까?