Як видалити Сторінки з пошуку?


13

Мені не потрібно шукати сторінки на своєму сайті, а я хочу лише шукати публікації, чи є спосіб це зробити? Спасибі

search 

Відповіді:


29

Нижче наведено, щоб тип публікації сторінки більше не міг шукати.

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

Де я розміщую цей код? Спасибі

Ви можете розмістити його у function.php вашої теми.
prettyboymp

Дякую дуже багато Я просто копіюю її, вставляючи її, і вона прекрасно працює

13

Наступне у function.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');

нехай буде розпуста. більш елегантний, більш ретельний. hte вище просто змінює параметри типу публікації, це сам пошуковий запит. +1
кайзер

Модифікація об'єкта типу публікації для типу публікації "сторінка" є кращим рішенням. Це рішення змушує жорстко встановити тип публікації як "пост" для всіх пошукових запитів, що не дозволить відображати будь-які користувацькі типи публікацій у пошуковій мережі, якщо на сайті є такі. Глобально встановити властивість виключити_from_search об’єкта типу "сторінка" означає, що будь-який код, який залежить від перевірки цього властивості, матиме правильну інформацію.
prettyboymp

Кілька відповідна зв'язок з трохи більше інформації: codex.wordpress.org / ...
its_me

Добре працює, але не цікавить тему в bbpress, тому це не добре. Використовуючи "$ wp_post_types ['сторінку'] -> виключити_from_search = true;" здається, хороший
варіант

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.