J'aimerais savoir s'il est possible de personnaliser le module de recherche par défaut de Wordpress. J'ai un site web qui traite des équipes et de leurs nouvelles.
Certaines de ces équipes ont leurs noms écrits comme ceci
J'aimerais que les modules de recherche puissent gérer ces équipes dans les résultats même si je cherche des chaînes telles que HMS, ou LA Dream , ou NY, au lieu de remplir les caractères avec des points. Quelqu'un a-t-il une suggestion ou connaît-il un WP astuce dont je ne suis pas au courant pour le moment?
Merci d'avance
Voici une idée utilisant le filtre request
pour ajouter des mots "en pointillés" de deux ou trois caractères ne contenant aucun point aux termes de recherche actuels.
Donc, si votre chaîne de recherche est par exemple:
Les rêves de LA
il deviendra:
LA Dreams L.A.
Voici un plugin de démonstration pour modifier la recherche par défaut:
<?php
/**
* Plugin Name: Search Terms Dotifier
* Author: birgire
* Plugin URI: http://wordpress.stackexchange.com/a/157972/26350
* Version: 0.0.1
*/
add_filter( 'request', function( $request ) {
if( ! is_admin() && isset( $request['s'] ) )
{
// Dont' dotify these words (lower case):
$exclude = array( 'the', 'in', 'it', 'he', 'she', 'was' );
// Loop over search terms:
$words = explode( ' ', $request['s'] );
foreach( (array) $words as $Word )
{
// Words with two or three chars that don't contain any dots:
if( mb_strlen( $Word ) > 1
&& mb_strlen( $Word ) < 4
&& false === strpos( $Word, '.' )
&& ! in_array( mb_strtolower( $Word ), $exclude, true )
)
{
// Append the 'dotted' Word:
$words[] = join( '.', str_split( $Word ) ) . '.';
}
}
$request['s'] = join( ' ', $words );
}
return $request;
});
Espérons que vous pourrez l’étendre davantage à vos besoins.