SearchWP Documentation

Visualizza la guida all'installazione, sfoglia la Knowledge Base, scopri i numerosi hook di SearchWP

Utilizzo di un campo personalizzato per dare priorità ai risultati di ricerca

Per impostazione predefinita, SearchWP restituisce i risultati di ricerca ordinati in base al peso di rilevanza calcolato in ordine decrescente.

In altre parole, i risultati più pertinenti salgono in cima in base ai pesi che hai impostato nella schermata delle impostazioni del motore per i tuoi motori di ricerca. Avere il controllo sulla rilevanza degli attributi facilita direttamente il controllo su come classificare i risultati di ricerca.

Il sistema di rilevanza di SearchWP può essere modificato a tuo piacimento. Questo articolo illustrerà come utilizzare il valore numerico di un campo personalizzato (postmeta) per controllare la classifica dei risultati di ricerca.

Ciò crea essenzialmente un 'galleggiante' che sovrascrive il calcolo del peso di rilevanza di SearchWP e classifica i risultati in base al loro valore di campo personalizzato.

Con questa personalizzazione, i risultati con un valore di campo personalizzato si classificheranno sopra quelli senza un valore di campo personalizzato. I risultati con il valore del campo personalizzato verranno ordinati prima per quel valore del campo personalizzato e poi per il valore di rilevanza di SearchWP. I risultati senza il valore del campo personalizzato verranno ordinati in base al valore di rilevanza di SearchWP.

Vedi anche: Aggiungi peso di rilevanza alle voci pubblicate più di recente per data

All hooks should be added to your custom SearchWP Customizations Plugin.

<?php
// Use a Custom Field as a buoy to supersede SearchWP's relevance weight sorting.
// @link https://searchwp.com/documentation/knowledge-base/custom-field-prioritize-results/
add_filter( 'searchwp\query\mods', function( $mods, $query ) {
global $wpdb;
$meta_key = 'my_buoy_meta_key';
// Add the buoy to these post types:
$post_types = [ 'post', 'page', ];
foreach ( $post_types as $post_type ) {
$mod = new \SearchWP\Mod();
$alias = \SearchWP::$index->get_alias();
$meta_alias = 'my_searchwp_sort_' . $post_type;
$mod->column_as( $wpdb->prepare( "(
SELECT meta_value
FROM {$wpdb->postmeta}
WHERE
{$wpdb->postmeta}.post_id = {$alias}.id
AND {$wpdb->postmeta}.meta_key = %s
)", $meta_key ),
$meta_alias );
$mod->order_by( "{$meta_alias} + 0", 'ASC', 2 );
$mods[] = $mod;
}
return $mods;
}, 30, 2 );

Crea Oggi Stesso una Migliore Esperienza di Ricerca WordPress

Non perdere mai più visitatori a causa di risultati di ricerca inutili. SearchWP rende la creazione della tua ricerca intelligente WordPress veloce e facile.

Get SearchWP Now
Icona di motori di ricerca multipli