我一直在尝试在 wordpress 中创建自己的 megamenu,主要是使用该get_pages()
方法。
目前它有 3 层深,即 3 个嵌套foreach
循环 - 我首先想知道,是否有更有效的方法来使用 vanilla wordpress 3.2 方法(例如 wp_nav_menu() 方法),其次,我是否应该关注性能?
我问是因为我已经看到其他网站使用 megamenus 并且在几个网站上,在查找/计算菜单时,每个页面加载都有明显的滞后。我的当前加载整个页面需要 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
}
}
}