Я экспериментировал с созданием своего собственного мегаменю в WordPress, в основном используя метод get_pages()
.
В настоящее время он имеет 3 уровня глубины, что составляет 3 вложенных цикла foreach
- сначала я подумал:Есть ли более эффективный способ сделать это с помощью ванильных методов Wordpress 3.2 (таких как метод wp_nav_menu ()), и во-вторых, я должен беспокоиться о производительности?
Я спрашиваю, потому что я видел другие сайты, использующиемегаменус и на пару, есть заметная задержка при каждой загрузке страницы, в то время как меню просматривается / рассчитывается.На загрузку всей страницы в настоящее время уходит от 0,8 до 1,8 секунд - обычно для самого меню - 0,5 секунды.
В моей тестовой среде есть удаленный сервер базы данных, который учитывает различную задержку и составляеттрудно понять, есть ли проблема с производительностью или просто задержка в сети.
Я не знаю достаточно о сути WordPress, чтобы знать, что он на самом деле делает, когда я делаю эти вызовы, кто-нибудь здесь мудрее?
Примечание: если кто-то хочет сказать «сказал вам об этом», имейте в виду, что это не связано с моим предыдущим вопросом о PHP-включениях и wordpress.Честный.
Примечание 2: Кроме того, благодаря ответу на указанный вопрос, о котором я уже знаю, рассмотрел и планирую интегрировать супер кэш или что-то подобное позже - я хочу узнать из этого вопроса:если возникает проблема с меню таким образом.
Ссылки:
http://codex.wordpress.org/Function_Reference/wp_nav_menu
http://codex.wordpress.org/Function_Reference/get_pages
РЕДАКТИРОВАТЬ: Некоторые псевдокод, показывающий типчто я сейчас делаю:
//get the toplevel pages
$parents = get_pages($args);
foreach ($parents as $parent)
{
//echo out some links
//get the children of the top level pages
$childPages = get_pages($args);
foreach ($childPages as $childpage)
{
//get the children of the child pages, echo a link and some markup
$grandchildPages = get_pages($args);
foreach ($grandchildPages as $grandchildPage)
{
//echo out a link and some markup
}
}
}