Меню Wordpress по умолчанию в базе данных


Теперь в моем wordpress(3.5) есть 3 меню.

  • Главное меню (по умолчанию из wp)
  • Меню нижнего колонтитула (по умолчанию из wp)
  • Меню тестирования

Теперь я сохранил меню тестирования по умолчанию.

Где Wordpress хранит эту вещь?

Я хочу знать, где wordpress хранит информацию о текущем меню, которое отображается в интерфейсе.

Author: Hiren Rathod, 2013-01-05

1 answers

Меню само по себе является таксономией в 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}.

P.S.: Чтобы изменить текущее меню в панели администратора, просто перейдите в Appearance " Menus страница и выберите нужное вам меню в Theme Locations мета-поле:

enter image description here

 53
Author: Eugene Manuilov, 2013-01-05 12:23:22