С помощью этого метода вы можете создать подменю easy in almoast для любой CMS (без изучения языка CMS).Все, что вам нужно сделать, это получить HTML-код в переменной и найти способ обнаружения подстраниц.
Все, что вам нужно, это включить http://simplehtmldom.sourceforge.net/ (думайте, что это как jQuery для PHP, выне пожалеете)
Вот пример создания подменю для пользовательских меню WordPress.
include('simple_html_dom.php');
$meny = wp_nav_menu( array(
'fallback_cb' => '' ,
'echo' => 0,
'container' => false,
'container' => '',
'items_wrap' => '%3$s'
));
$menu_string = str_get_html($meny);
foreach($menu_string->find('li[class=current-menu-item]') as $foreach_current_menu_item) // for each current-menu-item (only one of this)
{
if (strpos($foreach_current_menu_item->parent()->class,'sub-menu') !== false) // if you are on a subpage
{
foreach($menu_string->find('li[class=current-menu-ancestor]') as $foreach_current_menu_item2) //
{
$sidebar_menu= $foreach_current_menu_item2;
}
}
elseif (strpos($foreach_current_menu_item->last_child()->class,'sub-menu') !== false) // if you are on a head page WITH subpages
{
$sidebar_menu= $foreach_current_menu_item;
}
else // if you are on a head page WITHOUT subpages
{
$sidebar_menu = '';
}
}
// echo the menu where ever you want in your page
echo '<ul id="new-id-for-the-menu">'.sidebar_menu.'</ul>';
Чтобы заставить его работать на страницах 3-го уровня в меню боковой панели, вы можете использовать:
if (strpos($foreach_current_menu_item->parent()->class,'sub-menu') !== false)
{
$i = 0;
foreach($menu_string->find('li[class=current-menu-ancestor]') as $foreach_current_menu_ancestor)
{
if ($i == 0)
{
$sidomeny = $foreach_current_menu_ancestor;
}
$i++;
}
}