#wordpress
#wordpress
Вопрос:
У меня есть главное меню на сайте WordPress, использующее wp_nav_menu, которое состоит из 4 родительских элементов, и у каждого есть несколько пунктов подменю.
В конкретном шаблоне я хотел бы показать элементы подменю для одного из родительских элементов. Например:
- Родительский элемент 1
- Элемент списка 1
- Элемент списка 2
- Родительский элемент 2
- Элемент списка 1
- Элемент списка 2
- Родительский элемент 3
- Элемент списка 1
- Элемент списка 2
- Родительский элемент 4
- Элемент списка 1
- Элемент списка 2
В моем шаблоне я хотел бы показать элемент списка 1 и элемент списка 2 для родительского элемента 3. Каждый родительский элемент имеет уникальный идентификатор. В разделе «страницы» я использую следующий код для выполнения этого:
<?php
if($post->post_parent)
$children = wp_list_pages("title_li=amp;child_of=".$post->post_parent."amp;echo=0");
else
$children = wp_list_pages("title_li=amp;child_of=".$post->ID."amp;echo=0");
if ($children) { ?>
<ul id="side-page-menu">
<?php echo $children; ?>
</ul>
<?php } ?>
Но, похоже, это не работает для отдельных сообщений (по сравнению со страницами).
Спасибо!
Ответ №1:
Пробовал с этим
<ul>
<?php wp_list_pages('title_li=<h2>MAIN NAV</h2>amp;depth=1' ); ?>
</ul>
<?php
if ($post->post_parent == 0) {
$children = wp_list_pages("title_li=amp;child_of=".$post->ID."amp;echo=0");
$parentpage = $wpdb->get_row("SELECT ID, post_title, post_name FROM $wpdb->posts WHERE ID = '".$post->ID."'");
}
if ($post->post_parent != 0) {
$next_post_parent = $post->post_parent;
while ($next_post_parent != 0) {
$children = wp_list_pages("title_li=amp;child_of=".$next_post_parent."amp;echo=0");
$parentpage = $wpdb->get_row("SELECT ID, post_title, post_parent, post_name FROM $wpdb->posts WHERE ID = '".$next_post_parent."'");
$next_post_parent = $parentpage->post_parent;
}
}
?>
<?php if ($children) { ?>
<ul>
<li>SUBNAV FOR: <a href="<?php echo get_permalink($parentpage->ID); ?>"><?php echo $parentpage->post_title; ?></a>
<ul>
<?php echo $children; ?>
</ul>
</li>
</ul>
<?php } ?>