以下是一些内容的结构示例:
Parent A
-- Child A
-- Child B
Parent B
-- Child C
-- Child D
Parent A
应链接到的内容
Child A
和
Parent 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包含哪些方法可以帮助我实现它?
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\');
[未测试!]