2013-08-22 17 views
0

我有一個導航結構是這樣的:列表子頁面,除非沒有這樣的,在這種情況下,列表兄弟頁面,在WordPress

  • 首頁
  • 關於
    • 團隊
    • 我們特派團
  • 地點
    • 芝加哥
    • 紐約
    • 洛杉磯
  • 服務
  • 聯繫我們

如果我在看關於頁,我想邊欄顯示:

  • 團隊
  • 我們的使命

如果我期待在服務頁,我想邊欄顯示:

  • 首頁
  • 關於
  • 位置
  • 服務
  • 聯繫我們

這是我目前使用的代碼。我如何修改它以便按照我想要的方式工作?

<?php 
    global $wp_query; 
    if(empty($wp_query->post->post_parent)) { 
     $parent = $wp_query->post->ID; 
    } else { 
     $parent = $wp_query->post->post_parent; 
    } 
    $children = get_pages('child_of='.$parent); 
    if(count($children) > 0) { 
?> 
    <ul> 
     <?php wp_list_pages ("&title_li=&child_of=$parent"); ?> 
    </ul> 
<?php } ?> 

回答

2

這要麼做完全或至少告訴你如何:

查看一個網頁,有孩子(或孩子)時

只顯示該父的孩子。

  • 訪問主頁時,所有頂層頁面都列在邊欄中。
  • 訪問沒有子女的頂級頁面時,列出所有頂級頁面。
  • 當訪問含有子級的頂級頁面時,僅列出子頁面和子頁面。
  • 訪問子頁面時,僅列出該父項的子項和子頁面。
<?php 
$output = wp_list_pages('echo=0&depth=1&title_li=<h2>Top Level Pages </h2>'); 
if (is_page()) { 
    $page = $post->ID; 
    if ($post->post_parent) { 
    $page = $post->post_parent; 
    } 
    $children=wp_list_pages('echo=0&child_of=' . $page . '&title_li='); 
    if ($children) { 
    $output = wp_list_pages ('echo=0&child_of=' . $page . '&title_li=<h2>Child Pages</h2>'); 
    } 
} 
echo $output; 
?> 

從:http://codex.wordpress.org/Function_Reference/wp_list_pages#List_subpages_even_if_on_a_subpage

該方法以echo=0參數,它返回結果作爲一個字符串轉換爲可變的優點。 if ($children)測試現在可以正常工作,因爲如果wp_list_pages()找不到匹配項,它將返回空白。

相關問題