검색에서 페이지를 어떻게 제거합니까?


13

내 사이트에서 페이지를 검색 할 필요가없고 게시물 만 검색하고 싶습니다. 어떻게해야합니까? 감사

search 

답변:


28

아래는 페이지 게시물 유형을 더 이상 검색 할 수 없게 만들어야합니다.

function remove_pages_from_search() {
    global $wp_post_types;
    $wp_post_types['page']->exclude_from_search = true;
}
add_action('init', 'remove_pages_from_search');

해당 코드를 어디에 배치합니까? 감사합니다

테마의 functions.php에 넣을 수 있습니다.
prettyboymp

대단히 감사합니다. 방금 복사해서 붙여 넣으면 완벽하게 작동합니다

13

functions.php의 다음도 잘 작동합니다.

//Remove pages from search results
function mySearchFilter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','mySearchFilter');

shuold는 해결책입니다. 더 우아하고 유지 보수가 용이합니다. 위의 게시물 유형 매개 변수를 수정하면 검색 쿼리 자체가 수정됩니다. +1
Kaiser

'페이지'게시물 유형에 대한 게시물 유형 개체를 수정하는 것이 더 나은 솔루션입니다. 이 솔루션은 모든 검색어에 대해 게시물 유형을 '게시'로 강제 설정하여 사이트에있는 경우 사용자 정의 게시물 유형이 검색에 표시되지 않도록합니다. 'page'게시물 유형 개체의 exclude_from_search 속성을 전체적으로 설정하면이 속성을 확인하는 모든 코드에 올바른 정보가 포함됩니다.
prettyboymp

좀 더 자세한 정보와 관련된 링크 : codex.wordpress.org/…
its_me

잘 작동하지만 bbpress에서 주제를 표시하지 않으므로 좋지 않습니다. "$ wp_post_types [ 'page']-> exclude_from_search = true;"사용 좋은 옵션 것 같습니다
Kishore Sahoo

0

이것을 search.php에 넣으십시오.

<?php if (is_search() && ($post->post_type=='page')) continue; ?>

이 코드 바로 아래-> <?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>

자세한 내용은 여기 http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages를 참조 하십시오 .


다른 테마에서 하나를 검색하면 search.php가 없습니다. 감사합니다

예. 먼저 빈 search.php를 만든 다음 index.php에서 코드를 복사하여 붙여 넣습니다. 그런 다음 위에서 말한대로하십시오.
andrewk

1
실제로 @prettyboymp의 코드를 사용해야합니다. 더 쉽고 당신이 요청한 것을 수행합니다. 나는 그것을 테스트했다. 당신이 원한다면 ..
andrewk

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.