Cum să exclud pagini din rezultatele de căutare în WordPress
Adaugă acest cod în fișierul functions.php al temei child folosind un editor de cod precum Notepad++.
Va trebui să modifici ID-urile paginilor din cod cu cele ale tale.
Excluderea anumitor pagini din rezultatele căutării
add_filter( 'pre_get_posts', 'exclude_pages_search_when_logged_in' );
function exclude_pages_search_when_logged_in($query) {
if ( $query->is_search && is_user_logged_in() )
$query->set( 'post__not_in', array( 1, 2, 3, 4, 5 ) );
return $query;
}
Excluderea tuturor paginilor din rezultatele căutării
add_action('pre_get_posts','exclude_all_pages_search');
function exclude_all_pages_search($query) {
if (
! is_admin()
&& $query->is_main_query()
&& $query->is_search
&& is_user_logged_in()
)
$query->set( 'post_type', 'post' );
}

Poate fi necesară verificarea $query->is_main_query()
când excludeți o anumită pagină.

am vrut mai mult decât doar postări. $query->set('post_type', array( 'post', 'OTHER_POSTTYPE' ) );

Adaugă următorul cod în fișierul functions.php al temei tale
Funcționează perfect pe site-ul clientului meu.
//Exclude toate în afară de postări din căutarea WordPress
if (!is_admin()) {
function wse_search_filter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','wse_search_filter');
}

Puteți utiliza acest cod în fișierul functions.php
al temei dumneavoastră. Rețineți că nu am testat acest cod.
add_filter( 'pre_get_posts', 'SearchFilter' );
function SearchFilter( $query ) {
if ( $query->is_search ) {
$query->set( 'post__not_in', array( 2, 5, 12, 14, 20 ) );
}
return $query;
}
Am preluat ideea de pe WPBeginner.
Termenii de utilizare la momentul scrierii: "(...) Sunteți liber să referențiați snippet-urile și hack-urile noastre pe blogurile/site-urile dumneavoastră, atâta timp cât ne acordați creditul corespunzător din articolul respectiv.
