2011-02-03 7 views
0

Wordpress 제외 페이지 플러그인이 내 테마와 함께 작동하도록하고 싶습니다. 여기 내 테마가 모든 페이지를 쿼리하여 단일 페이지의 모든 행을 표시합니다.Wordpress 제외 페이지 플러그인 해킹

$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()가 있지만 여기에 nav를 표시하려고하지는 않습니다.

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

답변

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

+0

@Dave, No. 다음은 man 페이지입니다. http://codex.wordpress.org/Function_Reference/wp_list_pages – JakeParis

+0

Sweet, 솔루션이 작동합니다. 질문 1 : "foreach()"에 {}이 (가) 필요하지 않습니까? 그리고 질문 2, 어떻게 함수 "ep_get_excluded_ids()"(즉, 플러그인 : plugin)이 존재 하는지를 확인하기 위해 간단한 if 문을 어떻게 포함합니까? – Dave