Доброго времени суток, уважаемые php-разработчики! Новичку требуется срочная помощь! Есть сайт на Wordpress, в теме реализован сайдбар на PHP: Код сайдбара в functions.php: PHP: function pvmenu_func(){ $out = ''; if (is_page()) { $pages = get_pages(array( 'meta_key' => '_wp_page_template', 'meta_value' => 'page-cust.php' )); foreach($pages as $page){ $pages2[get_field('srpg_sort', $page->ID)] = array('id' => $page->ID); }; ksort($pages2); $out .= '<section id="nav_menu-2" class="widget widget_nav_menu amr_widget"><div class="menu-department-container"><ul id="menu-department" class="menu">'; foreach($pages2 as $page){ $pv_page_id = $page['id']; $out .= '<li class="menu-item menu-item-type-post_type menu-item-object-page'; if ($pv_page_id == get_the_ID()) {$out .= ' current_page_item';}; $out .= '"><a href="'.get_permalink($page['id']).'">'.get_the_title($page['id']).'</a></li>'; $posts = get_posts(array( 'numberposts' => -1, 'post_type' => 'post', 'meta_key' => 'srpg', 'meta_value' => $pv_page_id )); if ($pv_page_id == get_the_ID()) { $out .= '<ul class="sub_menu">'; foreach($posts as $post){ $out .= '<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a></li>'; } $out .= '</ul>'; } } $out .= '</ul></div></section>'; } else { if (get_field('srpg') != '') { $srpg = get_field('srpg'); } if (get_field('srtw') != '') { $srtw = get_field('srtw'); $srpg = get_field('srpg', $srtw); } $pages = get_pages(array( 'meta_key' => '_wp_page_template', 'meta_value' => 'page-cust.php' )); $out .= '<section id="nav_menu-2" class="widget widget_nav_menu amr_widget"><div class="menu-department-container"><ul id="menu-department" class="menu">'; foreach($pages as $page){ $pages2[get_field('srpg_sort', $page->ID)] = array('id' => $page->ID); }; ksort($pages2); foreach($pages2 as $page){ $pv_page_id = $page['id']; $out .= '<li class="menu-item menu-item-type-post_type menu-item-object-page'; if ($pv_page_id == $srpg) {$out .= ' current_page_item';}; $out .= '"><a href="'.get_permalink($page['id']).'">'.get_the_title($page['id']).'</a></li>'; $posts = get_posts(array( 'numberposts' => -1, 'post_type' => 'post', 'meta_key' => 'srpg', 'meta_value' => $pv_page_id )); if ($pv_page_id == $srpg) { $out .= '<ul class="sub_menu">'; foreach($posts as $post){ $pv_post_id = $post->ID; $out .= '<li class="menu-item menu-item-type-post_type menu-item-object-page '; if ($pv_post_id == get_the_ID()) {$out .= ' current_page_item';}; if ($pv_post_id == $srtw) {$out .= ' current_page_item';}; $out .= '"><a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a></li>'; $child_posts = get_posts(array( 'numberposts' => -1, 'post_type' => 'post', 'meta_key' => 'srtw', 'meta_value' => $pv_post_id )); if ($pv_post_id == get_the_ID() || $pv_post_id == $srtw) { $out .= '<ul class="sub_menu">'; foreach($child_posts as $child_post){ $out .= '<li class="menu-item menu-item-type-post_type menu-item-object-page '; if ($child_post->ID == get_the_ID()) {$out .= ' current_page_item';}; $out .= '"><a href="'.get_permalink($child_post->ID).'">'.get_the_title($child_post->ID).'</a></li>'; }; $out .= '</ul>'; }; } $out .= '</ul>'; } } $out .= '</ul></div></section>'; }; return do_shortcode($out); } add_shortcode( 'pvmenu', 'pvmenu_func' ); Еще кусок кода в page-cust.php: PHP: <?php if (is_page()) { $pages = get_pages(array( 'meta_key' => '_wp_page_template', 'meta_value' => 'page-cust.php' )); foreach($pages as $page){ echo '<!--'.get_the_title($page->ID).get_permalink($page->ID).' -->'; $pv_page_id = $page->ID; if ($pv_page_id == get_the_ID()) {echo '<!-- active -->';}; $posts = get_posts(array( 'numberposts' => -1, 'post_type' => 'post', 'meta_key' => 'srpg', 'meta_value' => $pv_page_id )); if ($pv_page_id == get_the_ID()) { foreach($posts as $post){ echo '<!-- >>>'.get_the_title($post->ID).get_permalink($post->ID).' -->'; } } } } else { $pages = get_pages(array( 'meta_key' => '_wp_page_template', 'meta_value' => 'page-cust.php' )); foreach($pages as $page){ echo '<!--'.$page->ID.' -->'; $pv_page_id = $page->ID; if ($pv_page_id == get_the_ID()) {echo '<!-- active -->';}; $posts = get_posts(array( 'numberposts' => -1, 'post_type' => 'post', 'meta_key' => 'srpg', 'meta_value' => $pv_page_id )); foreach($posts as $post){ echo '<!-- >>>'.$post->ID.' -->'; $pv_post_id = $post->ID; if ($pv_post_id == get_the_ID()) {echo '<!-- active -->';}; $child_posts = get_posts(array( 'numberposts' => -1, 'post_type' => 'post', 'meta_key' => 'srtw', 'meta_value' => $pv_post_id )); foreach($child_posts as $child_post){ if ($child_post->ID == get_the_ID()) {echo '<!-- active -->';}; echo '<!-- >>>-----'.$child_post->ID.' -->'; }; } } }; ?> Внутренние страницы выводятся через "записи" в админке. С помощью плагина произвольных полей реализовано 2 уровня вложенности меню. За первый отвечает поле 'srpg', за второй уровень - 'srtw'. Проблемы две: 1)На последнем уровне не отображает текущее положение в меню, то есть меню свернуто. Пример: Нужно сделать, чтобы меню раскрывалось и показывало название текущей страницы. 2)Некоторые страницы первого уровня вложенности не отображают в меню привязанные к ним страницы второго уровня: Например, страница: Она является родителем трех других страниц, но две из них не отображаются в меню сайдбара, хотя поля 'srtw' этих страниц правильно заполнены. Все новые создаваемые страницы тоже не отображаются в меню второго уровня, то есть, поле 'srtw' работает неправильно. Буду очень признателен тем, кто поможет решить эти проблемы. Хотя бы дайте подсказку, куда копать. Проблему нужно решить срочно.