Menus like a CMS

时间:2012-07-31 作者:Matthew

以下是一些内容的结构示例:

Parent A
-- Child A
-- Child B
Parent B
-- Child C
-- Child D
Parent A 应链接到的内容Child AParent B 应链接到的内容Child C. 除此之外,我不确定这是否应该完全由wordpress中的“菜单”来管理,或者它是否应该是Parent A 包含子页面的页面。唯一的问题是Parent A 不是真正的内容,只是链接到Child A.

如果你需要一个真实世界的例子,可以是这样的:

主导航:

Home, Company, Products, Contact

Company
-- About Us
-- News
-- Careers
在这种情况下,实际上没有“公司”页面,但“公司”实际上是指向“关于我们”的链接。

如果选择了“子A”或“子B”,则应在侧栏中显示导航的此部分:

Parent A
-- Child A
-- Child B
如果选择了“Child C”或“Child D”,则应在侧栏中显示导航的此部分:

Parent B
-- Child C
-- Child D
希望这个问题有意义。我试图了解如何单独访问导航项。我甚至找不到有用的方法(最近的方法是get_nav_menu_item_children). 这应该如何组织,wordpress包含哪些方法可以帮助我实现它?

1 个回复
SO网友:Jan Beck

3个想法:

创建空的父页面,并使用重定向插件将这些页面中的所有请求重定向到子页面page.php - 测试此页的子级是否存在并使用wp_redirect() 跳过此页并自动重定向到子级redirect.php 仅应用3的逻辑。您可以选择仅在所选页面上使用子重定向。

编辑:根据Kaiser的输入,良好的重定向可能是这样的:

function children_redirect() {
   global $wp_query;
   $child = get_children( array( \'post_parent\' => $wp_query->post->ID, \'orderby\' => \'menu_order\', \'numberposts\' => 1) )

    if( is_page_template( \'children-redirect.php\' ) )
        wp_redirect( get_permalink( $child[0]->ID ) ); // redirect to first child page
}
add_action(\'template_redirect\', \'children_redirect\');
[未测试!]

结束

相关推荐

Order Admin sub-menu items?

我正在使用向CPT管理菜单添加项目add_submenu_page 这很好,但它们被添加到CPT选项后的子菜单底部。我希望能够将它们放在最上面,但我想这个问题也可以应用于订购所有基于管理员的子菜单项。我所尝试的(不起作用,我尝试了几种变体),function custom_menu_order($menu_ord) { if (!$menu_ord) return true; return array( \'edi