2012-07-25 5 views
1

내 사이트에 위키 섹션이 있습니다.이 위키 또는 다른 말로 페이지 # 278의 하위 페이지 만 검색하도록 WordPress의 기본 검색을 수정하고 싶습니다. . wp_list_pages 및 매개 변수 'child_of'를 사용하여 지정된 페이지의 하위 페이지를 나열하는 데 성공했습니다. 그런 식으로 시도했습니다. 두 시도까지 : 검색 페이지에서 ... 내 기능 파일에Wordpress - 검색은 특정 페이지의 아이들 만 검색하십시오.

<?php if (have_posts(array('child_of'=>278))) : ?> 
... 
<?php while (have_posts(array('child_of'=>278))) : the_post(array('child_of'=>278)) ?> 

그리고 양자 택일 ... 지금까지 행운과

function SearchWikiPages($query) { 
    if ($query->is_search) { 
     $query->query_vars['child_of']=278; 
    } 
    return $query; 
} 
add_filter('pre_get_posts','SearchWikiPages'); 

. 내가 어떻게이 일을 할 수 있는지 아는 분이라면 도와주세요. 내가 필요한 것을 얻는다면 플러그인이나 다른 창의적인 솔루션을 사용하는 것에 반대하지 않을 것입니다. 감사합니다.

답변

0

접근 방식이 효과적입니다. 문제가 child_of을 사용하는 것 같습니다. 나는 파라미터가 WP_Query이라고 생각하지 않는다. (이것은 the Codex에 언급되어 있지 않다.)

$query->set('post_parent', 278); 

$query->query_vars['child_of']=278; 

교체

나를 위해 일했다.

+0

흠 -'child_of'는 모든 자손을 쥐고 있고,'post_parent'는 직계 아이들 만 잡습니다. 두 부분으로 할 수 있습니다 - 모든 자손을 구한 다음 (예)'post__in '을 사용하여 상태에있는자를 사용하십시오 – Hobo

+0

무엇을 의미합니까? 함수 파일에서 필터를 편집하고 있습니까? 278 페이지의 모든 자손을 저장하고 set ('post_parent', 278)을 호출 한 변수를 생성하기 만하면됩니까? – russtuck91

+0

죄송합니다, 예 - 여전히 함수 파일의 필터에 있습니다. 278 페이지의 모든 자손을 저장하는 변수를 만들고 ('$ descendants'),'post_parent' 라인 대신'$ query-> set ('post__in', $ descendants);를 사용하십시오. 물론, 여러 레벨의 페이지가 없다면,'post_parent'는 잘 동작 할 것입니다. – Hobo

관련 문제