Very short trick: Wordpress, escludere pagine e post dalla ricerca
mercoledì 8 luglio, 2009Il motore interno di Wordpress sfruttato per la ricerca (quella standard senza l'aggiunta di plugin) effettua a basso livello una classica query_post(). La ricerca viene svolta dapperttutto, senza escludere nulla. Questa caratteristica può essere tuttavia controllata permettendo, ad esempio, di effettuare una ricerca su tutto tranne che in particolari categorie, pagine o post. Esistono vari modi per "filtrare" la ricerca standard di Wordpress, uno è sfruutando il filtro pre_get_posts:
-
/**
-
* Inserire questo codice nel file functions.php
-
* Esclude dalla ricerca le pagine/post con id 26,27 e 32
-
*/
-
function search_filter($query) {
-
if ($query->is_search) {
-
}
-
return $query;
-
}
-
-
add_filter('pre_get_posts','search_filter');
Questo filtro è interessante e permette di eseguire varie attività sulla nostra query di ricerca. Analizzando il parametro di ingresso $query si può avere un'idea delle operazioni che si possono svolgere:
-
function search_filter($query) {
-
if ($query->is_search) {
-
echo '<pre>';
-
echo '</pre>';
-
}
-
return $query;
-
}
-
-
add_filter('pre_get_posts','search_filter');
Ad esempio è possibile escludere dalla ricerca particolari categorie:
-
/**
-
* Inserire questo codice nel file functions.php
-
* Esclude la categoria con id 14
-
*/
-
function search_filter($query) {
-
if ($query->is_search) {
-
$query->set('cat', '-14');
-
}
-
return $query;
-
}
-
-
add_filter('pre_get_posts','search_filter');
La prima if nel codice determina in che modalità siamo, in questo caso search. Questo significa che possiamo applicare questo filtro anche in altri contesti, come ad esempio:
-
/**
-
* Inserire questo codice nel file functions.php
-
* Esclude la categoria con id 14 dai Feed
-
*/
-
function search_filter($query) {
-
if ($query->is_feed) {
-
$query->set('cat', '-14');
-
}
-
return $query;
-
}
-
-
add_filter('pre_get_posts','search_filter');










10

[...] approfondire consulta articolo originale: Undolog.com» Very short trick: Wordpress, escludere pagine e post … Articoli correlati: Very short trick: pagine padri e pagine figlie in Wordpress [...]