데이터베이스의 워드 프레스 기본 메뉴


18

내 워드 프레스 (3.5)에는 3 개의 메뉴가 있습니다.

  • 기본 메뉴 (wp에서 기본값)
  • 바닥 글 메뉴 (wp에서 기본값)
  • 테스트 메뉴

이제 테스트 메뉴를 기본값으로 유지했습니다.

Wordpress는이 것을 어디에 저장합니까?

프런트 엔드에 표시되는 현재 메뉴에 대해 워드 프레스가 저장되는 위치를 알고 싶습니다.

답변:


46

메뉴 자체는 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_id103 과 같은 메뉴가 선택되어 있음을 알 수 "primary"있습니다.

여기서 중요한 원칙은 각 WP 테마마다 항상 별도의 옵션 레코드가 있다는 것입니다. 이러한 옵션은 이름 구조가 동일 theme_mods_{your-theme-name}합니다.

PS : 관리자 패널에서 현재 메뉴를 변경하려면 Appearance» Menus페이지 로 이동하여 Theme Locations메타 상자 에서 필요한 메뉴를 선택하십시오 .

여기에 이미지 설명을 입력하십시오


답장을 보내 주셔서 감사하지만 현재 기본 메뉴 (프론트 엔드로 표시)를 저장하는 위치를 알고 싶습니다.
Hiren Rathod

@HirenRathod 내 답변을 업데이트했습니다
Eugene Manuilov

예, 대답이 있습니다. 하이퍼 샷 테마를 사용하고 입문서 메뉴를 테스트 메뉴로 유지했습니다. 다음과 같이 저장합니다 : a : 2 : {i : 0; b : 0; s : 18 : "nav_menu_locations"; a : 2 : {s : 11 : "header-menu"; i : 27; s : 11 : "footer -menu "; i : 0;}} 여기서 i : 27은 27이 wp_terms의 term_id임을 의미합니다. 감사합니다 @ eugene-manuilov :)
Hiren Rathod

주어진 메뉴 항목 (페이지 / 게시물 / 링크)을 어떻게 선택 term_id하시겠습니까?
Xeoncross
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.