Cum să exclud pagini din rezultatele de căutare în WordPress

29 apr. 2014, 19:27:34
Vizualizări: 13.5K
Voturi: 5

Cum pot exclude paginile pentru membrii autentificați din rezultatele de căutare WordPress?

1
Comentarii

Ați căutat deja pe site? Ce ați încercat? Unde ați eșuat? Vă rugăm să [editați] postarea cu eforturile dumneavoastră. Vă mulțumim.

kaiser kaiser
29 apr. 2014 20:09:52
Toate răspunsurile la întrebare 3
3
18

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' );
}

Sursa http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts#Exclude_Pages_from_Search_Results

29 apr. 2014 20:07:47
Comentarii

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

Z. Zlatev Z. Zlatev
4 oct. 2015 16:27:35

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

Adeerlike Adeerlike
9 nov. 2015 14:37:56

Poate cineva să comenteze a doua funcție, ca să văd ce face fiecare parte? Mulțumesc :)

Pete Pete
18 apr. 2016 16:12:13
1
-1

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');
}
31 dec. 2019 14:28:02
Comentarii

Cum diferă / este mai bun decât răspunsul postat și acceptat?

kero kero
31 dec. 2019 14:35:14
0
-2

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.

29 apr. 2014 19:45:14