SearchWP Documentation

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

Come integrare con importazioni/migrazioni di contenuti

SearchWP reagisce a determinate operazioni che avvengono all'interno di WordPress. Quando il contenuto viene modificato, WordPress informa SearchWP della modifica e SearchWP, a sua volta, reindicizza quel contenuto modificato. Questo mantiene il tuo indice aggiornato nel tempo automaticamente, senza che tu debba gestire nulla.

Per loro natura, le routine di importazione di contenuti (ad es. con WP All Import) effettuano molte modifiche (a volte simultanee) in un brevissimo lasso di tempo. Questo può avere effetti negativi quando SearchWP reagisce a tutti i segnali inviati da WordPress che molte modifiche sono in corso.

Se l'importazione è sufficientemente grande e viene eseguita abbastanza velocemente, l'indicizzatore di SearchWP può essere inondato da notifiche di modifica e alla fine l'indice sarà fuori sincronia. Questo è indesiderabile poiché SearchWP può iniziare a ciclare ripetutamente sul proprio indice o, peggio ancora, restituire risultati di ricerca inaccurati.

Gestire correttamente le importazioni di contenuti

NOTA: A partire dalla versione 4.1.16 di SearchWP, i processi di WP All Import vengono gestiti automaticamente!

Leggi di più sull'integrazione automatica di SearchWP,
o continua a leggere per implementare la tua

Si raccomanda almeno di disabilitare l'indicizzatore di SearchWP durante l'esecuzione di uno script di importazione. Questo può essere fatto modificando il tuo script di importazione o utilizzando gli hook disponibili nel tuo plugin scelto. Lo pseudocodice per quello che faremo è il seguente:

Pause SearchWP indexer
Tell SearchWP to mark each edited entry for re-indexing
Run import in full
Enable SearchWP indexer
Trigger build of SearchWP index

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

<?php
// Disable SearchWP's automatic integration with WP All Import.
add_filter( 'searchwp\integration\wp-all-import', '__return_false' );
add_action( 'pmxi_before_xml_import', function( $import_id ) {
\SearchWP::$indexer->pause();
}, 10 );
add_action( 'pmxi_saved_post', function( $post_id ) {
$source_name = \SearchWP\Utils::get_post_type_source_name( get_post_type( $post_id ) );
$source = \SearchWP::$index->get_source_by_name( $source_name );
// Mark this to be dropped after the import has finished.
\SearchWP::$index->drop( $source, $post_id );
}, 10 );
add_action( 'pmxi_after_xml_import', function( $import_id ) {
\SearchWP::$indexer->unpause();
// Process all entries marked to be dropped.
\SearchWP::$index->unpause();
\SearchWP::$index->trigger();
}, 10 );

Con questo snippet al suo posto, SearchWP reagirà meglio alle tue importazioni di contenuti, con un indice accurato che sarà stato creato dopo il completamento dello script di importazione. Ciò consentirà anche alla tua importazione di essere eseguita un po' più velocemente poiché SearchWP non competerà per le risorse durante l'elaborazione dell'importazione.

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