0

我有一个菜单问题,我需要一些帮助。

我正在使用主题为 211 的 wordpress 3.3.2。

我正在使用两个模板,默认的 wordpress 展示和一个名为 products 的自定义页面模板。

我目前有这个子导航树(展示模板):

  • -市场和产品
    • 农业
    • 航天
    • 防御
    • 工业的

我用来获得上述结果的代码是:

       <?php

        //$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=1&depth=1');

if($post->post_parent && $post->post_parent!=0){
        $children = wp_list_pages("title_li=&sort_column=menu_order&child_of=".$post->post_parent."&echo=0&depth=2");

}else{
          $children = wp_list_pages("title_li=&sort_column=menu_order&child_of=".$post->ID."&echo=0&depth=1");
     }
 if ($children) { ?>
    <div id="subNav">
        <ul>        
        <?php echo $children; ?>
        </ul>
    </div>
    <?php } ?>

当我选择农业页面(产品模板)时,我会看到以下结构:

  • 营销与产品
    • 农业
      • 孙子第 1 页
      • 孙子第 2 页
    • 航天
      • 孙子第 1 页
      • 孙子第 2 页
    • 防御
    • 工业的

农业孙子页面正在展示,但航空孙子页面应隐藏。

我正在使用的当前代码是:

    <?php

       //$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=1&depth=1');
    // && $post->post_parent!=0
    if($post->post_parent){
    //siblings
    $textTest = 'siblings';
            $children = wp_list_pages("title_li=&sort_column=menu_order&child_of=".$post->post_parent."&echo=0&depth=2");
     }else{
            $textTest =  'children';
                    $children = wp_list_pages("title_li=&sort_column=menu_order&child_of=".$post->ID."&echo=0&depth=1");
          }
       if ($children) { ?>
        <div id="subNav">
            <? echo $textTest;?>
            <ul>        
               <?php echo $children; ?>
            </ul>
        </div>
    <?php } ?>

所以我想知道的是;给定:营销页面的父项为 0 它有孩子 航空航天和农业 他们也有孩子(营销的孙子)

有没有一种方法可以显示:营销的孩子在那个页面上农业的孩子(例如)在那个页面上,或者在它的一个孩子页面上 - 这样只有这些孙子和农业的兄弟姐妹才会显示(营销的孩子),但不是它的兄弟姐妹的孩子?

任何帮助表示赞赏。:)

4

1 回答 1

0

您使用的if else会导致冲突。

为每一页使用一个meta value。它决定了要在屏幕上显示的菜单类型。

别的:

使用此代码,菜单将显示它将始终显示完整菜单。

当你在 Agriculture页面上时,它会检查它是否有父页面,在这种情况下,你的页面的父Agriculture页面是Marketing & products页面,然后它会选择父页面。

并且所有的子页面Marketing & products都显示在链接中。

于 2012-05-02T15:43:21.610 回答