例如,假设这样的菜单:
Parent 1
Child A
Child B
Parent 1
Child C
Child D
Child E
Parent 2
Child F
在模板的特定部分,我希望根据菜单中的当前“位置”显示一些内容。如果用户在
Parent 1
,
Child C
,
Child D
, 或
Child E
页面,然后我想显示一个小菜单,上面写着
Parent 1
作为标题,子级作为链接。我尝试过很多事情(创建一个自定义walker对象,编写css以不显示不应该显示的项目,等等),如果根本没有子项,那么我甚至不想在父项自己的页面上显示父项。这有意义吗?
我不想要一个插件可以/有助于实现这一点(我不想让我的模板“依赖”于插件)
SO网友:Greg McMullen
试试这个——我还没有完全实现它,但我已经测试过了,它似乎很有效。将其放在函数中。php和调用<?php list_child_pages(); ?>
或使用快捷码[childpages]
在编辑器中。
<?php
// List Child pages of a parent.
function list_child_pages() {
global $post;
if ( is_page() && $post->post_parent )
$childpages = wp_list_pages( \'sort_column=menu_order&title_li=&child_of=\' . $post->post_parent . \'&echo=0\' );
else
$childpages = wp_list_pages( \'sort_column=menu_order&title_li=&child_of=\' . $post->ID . \'&echo=0\' );
if ( $childpages ) { ?>
<menu>
<ul class="side-nav">
<?php echo $string = $childpages; ?>
</ul>
</menu>
<?php
}
return $string;
}
// Add Shortcode for additional support, not just in the theme template
add_shortcode(\'childpages\', \'list_child_pages\');
?>