WordPress: cambiare il permalink della ricerca

wordpress nice search

Questo è un’altro degli snippets che uso normalmente sui template WordPress che mi chiedono di sviluppare.

Il primo pezzo (template_redirect) si occupa semplicemente di modificare il permalink base delle ricerca da “http://www.nomesito.com/?s=query” a “http://www.nomesito.com/search/query/“.

Con il secondo gestisco il caso in cui NON voglio che la keyword usata per la ricerca sia “search“.

Vado quidi a modificare la “search_base” ed a creare la regola di rewrite.

Ovviamente è necessario rigenerare i permalink in modo che la regola venga gestita correttamente.

/**
 * Redirects search results from /?s=query to /search/query/, converts %20 to +
 *
 * @link https://wordpress.org/plugins/nice-search/
 * 
 */
add_action( 'template_redirect', function () {
	global $wp_rewrite;
	if ( !isset( $wp_rewrite ) || !is_object( $wp_rewrite ) || !$wp_rewrite->using_permalinks() )
		return;

        $search_base = $wp_rewrite->search_base;
	if ( is_search() && !is_admin() && strpos( $_SERVER['REQUEST_URI'], "/{$search_base}/" ) === false ) {
		wp_redirect( home_url( "/{$search_base}/" . urlencode( get_query_var( 's' ) ) ) );
		exit();
	}
});

/**
 * Changhe the search_base add rewrite_rule
 * Only if != search
 */
add_action( 'init', function () {
    
    $GLOBALS['wp_rewrite']->search_base = 'search-results';
    add_rewrite_rule('^' . $GLOBALS['wp_rewrite']->search_base . '/([^/]+)/?$', 'index.php?s=$matches[1]', "top");
    
});

Mark Jaquith aveva scritto anche un plugin ma oltre al fatto che non gestiva la modifica della “search_base” preferisco gestirlo via codice includendolo dimanicamente dentro functions.php

Maurizio Pelizzone

Scritto da

Maurizio Pelizzone

Sono Maurizio Pelizzone, sviluppatore WordPress da oltre vent'anni e consulente di intelligenza artificiale a Torino, co-fondatore di Mavida. Realizzo plugin e integrazioni su misura per WordPress e WooCommerce, automazioni dei processi con n8n e agenti AI, e tengo corsi e workshop su Claude Code, prompt engineering e vibe coding, in presenza a Torino o da remoto. Sono speaker ai WordCamp e autore della guida gratuita in italiano a Claude Code; se vuoi parlarmi di un progetto puoi prenotare una call conoscitiva.

Scopri chi sono

Nessun commento

Scrivi il primo.

Scrivi un commento

Nessun commento

Scrivi un commento

I commenti sono moderati: il tuo comparirà dopo la lettura. L'email non viene pubblicata. I campi con * sono obbligatori.