2011-02-03 69 views
0

我想讓wordpress排除頁面插件與我的主題一起工作。這裏是我的主題查詢所有頁面並將它們全部顯示在單個頁面上的行。Wordpress排除頁面插件hack

$pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' ORDER BY menu_order", ARRAY_A); 

foreach ($pagepull as $single_page){ 
    echo $single_page['post_content']; 
    // do other stuff too 
} 

您對如何調整查詢以使用排除頁面有任何想法嗎?有沒有一個函數來獲取所有頁面?我知道有wp_list_pages()來獲取頁面列表,但我不想在這裏顯示導航。

做2次查詢,1次獲得頁面列表,然後2次查詢該列表會更好嗎?不完全確定如何做到這一點,但額外的查詢聽起來像一個壞主意。思考?

UPDATE: 從下面的答案我發現這個工作:現在

 $excluded = ep_get_excluded_ids(); 
     foreach ($excluded as $removepage){ 
      echo ""; 
      $limits .= " AND id != $removepage"; 
     } 
     $pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' $limits ORDER BY menu_order", ARRAY_A); 

,爲了安全起見,我怎麼測試,看是否有插件的功能存在?感覺我依靠ep_get_excluded_ids();從排除插件安裝。

UPDATE2: - 刪除 - (我在這個問題的簡單的拼寫錯誤,別提這個)

+0

如何使用get_pages? http://codex.wordpress.org/Function_Reference/get_pages – Arvin 2011-02-03 16:36:08

回答

0

如果你試圖返回所有,但指定頁面(和你不想要的wp_list_pages()格式),你可以這樣做:

$excArr = array(5,7,10); 

foreach($excArr as $p) 
    $limits .= " AND id != $p"; 

$pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' $limits ORDER BY menu_order", ARRAY_A); 

另一種選擇是使用wp_list_pages()和風格<li><ul>元素,使他們看上去並不像一個列表。

+0

我可以從wp_list_pages()獲得['post_content']嗎? – Dave 2011-02-03 16:42:58