2010-08-20 88 views
0

我建立一個WordPress主題,現在和我使用的側邊欄條件語句顯示,像這樣爲每個頁面不同的信息:WordPress的子頁面標籤

if (is_page('services')) { 
etc..... 
} elseif (etc.... 

然而,一些子頁面的沒有他們自己的具體條件。我怎樣才能讓父頁面的條件適用於它的子頁面呢?

謝謝!

回答

1

你可以通過多種方式來做到這一點。有可能是一個更簡單的方法,但這是我會做什麼: 在頁面本身,檢查它是否是一個子頁:

 if (is_page() && $post->post_parent) 
    { 
      // This is a subpage 
      return true; 

    } 
    else 
    { 
     // This is not a subpage 
     return false; 
    } 

將檢查網頁是一個孩子,在這種情況下你可以按照與當前相同的方式從父項獲取條件,除了在檢查時指定父項而不是當前頁。

+0

這似乎有點迂迴的方式來做到這一點。 (但是,我並沒有聲稱在PHP中是任何一種專家):D)是否應該在條件本身中指定包含子頁面的方法? – codedude 2010-08-20 15:42:20

+0

或者,也許有一個標籤看起來像這樣:if(is_page_and_subpages('services')){ – codedude 2010-08-20 15:52:24

+0

我明白你想要做什麼,但並不那麼容易。這不是PHP的工作原理,也不是Wordpress的工作原理。你可以通過許多其他的方式來做到這一點,但這樣做比從父母到孩子傳遞變量容易。如果我直接進入你的子頁面,我從來沒有訪問過你的父頁面,所以無論如何都必須在函數或子頁面中設置變量。如果這有道理? – 2010-08-20 16:42:34

0

你也可以將這段代碼放在你的functions.php文件中,並在你的wp代碼中的任何地方使用它。

function is_subpage() { 
    global $post;         // load details about this page 
     if (is_page() && $post->post_parent) {  // test to see if the page has a parent 
       $parentID = $post->post_parent;  // the ID of the parent is this 
       return $parentID;      // return the ID 
     } else {          // there is no parent so... 
       return false;       // ...the answer to the question is false 
     }; 
}; 

來源:http://codex.wordpress.org/Conditional_Tags