Guida WordPress – Ricerca sulla Categoria Corrente, Categorie e Tags

Come modificare il comportamento naturale della ricerca con WordPress, ecco una breve guida:
magnifying-glass-copy

La necessità riscontrata

In precedenti progetti sviluppati in WordPress si sono verificate delle esigenze che hanno portato in sintesi a due richieste riguardanti il funzionamento della ricerca in WordPress:

  1. la ricerca dovrebbe essere effettuata solo tra gli articoli della categoria corrente in cui l’utente si trova;
  2. la ricerca dovrebbe essere estesa non solo alle parole trovate nei testi, ma anche alle categorie e tag.

La soluzione elaborata

Vediamo come poter soddisfare le esigenze evidenziate, grazie a una funzione che permette di prendere la categoria corrente nel primo caso, e l’utilizzo di un plugin nel secondo.

1. Ricerca solo nella categoria corrente

Dobbiamo scrivere una funzione che permetta di catturare la categoria in cui ci troviamo, nel file function.php:

<?php function getCurrentCatID() {
	global $wp_query;
	if(is_category() || is_single()) {
		$cat_ID = get_query_var('cat');
	}
	return $cat_ID;
}?>

Ora apriamo il file searchform.php, il file che genera il form di ricerca e aggiungiamo questa riga di codice:

<input id="cat" type="hidden" name="cat" value="<?php getCurrentCatID(); ?>" />

In questo modo viene aggiunto un campo di input nascosto, che “filtra” la ricerca in base alla categoria corrente.

2. Estendere la ricerca a categorie e tag

In questo caso abbiamo utilizzato il plugin Search Everything, che consente di estendere la ricerca a categorie, tag, riassunti, campi personalizzati ecc.

plugin-wordpress-SearchEverything

In questo articolo, che ti consigliamo di leggere, sono stati selezionati dei plugin per migliorare la ricerca con WordPress.

Creo e gestisco siti web, siti di ecommerce, blog personali e siti aziendali, applicazioni web-based e applicazioni mobili personalizzate per Iphone / Ipad e Android. Gestisco domini Internet e server Linux: Fedora, CentOS e Ubuntu; Database MySQL; eCommerce PrestaShop; CMS WordPress e Joomla.

Leave a Reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *