Я использую searchWP в сочетании с FacetWP на моем веб-сайте. Поисковая система ищет сообщения с пользовательским типом сообщения. Каждый день выполняется задание cron для импорта сообщений. После импорта поисковая система больше не находит сообщений, поэтому мне нужно создать новый начальный индекс. ИЗОБРАЖЕНИЕ: страница настроек searchWP и кнопка, которую я должен нажать для создания нового начального индекса
Я хочу инициировать это с помощью кода, а не делать это вручную. Я попытался сделать это с этим примером с сайта searchWP. Это без всякой удачи.
<?php
/**
* WP All Import SearchWP PRE-import routine
*
* @link https://searchwp.com/docs/kb/best-work-content-imports/
*/
function myswp_before_xml_import( $import_id ) {
// Pause the SearchWP indexer during import
SWP()->indexer_pause();
// Tell SearchWP to ignore edit events
searchwp_update_option( 'prevent_delta_triggers', true );
// Purge SearchWP index
// This is optional, but beneificial if your import process
// overwrites ALL content indexed by SearchWP.
// NOTE: if this is uncommented, the pmxi_saved_post action
// below should be commented out as it is not necessary.
// SWP()->purge_index();
}
add_action( 'pmxi_before_xml_import', 'myswp_before_xml_import', 10, 1 );
/**
* WP All Import callback that runs for each imported entry.
* Purge that post from the SearchWP index.
*
* NOTE: If you are purging the index in pmxi_before_xml_import above
* this hook should be disabled as it is not necssary.
*
* @link https://searchwp.com/docs/kb/best-work-content-imports/
*/
function myswp_post_updated( $post_id ){
SWP()->purge_post( $post_id );
}
add_action('pmxi_saved_post', 'myswp_post_updated', 10, 1 );
/**
* WP All Import SearchWP POST-import routine
*
* @link https://searchwp.com/docs/kb/best-work-content-imports/
*/
function myswp_after_xml_import( $import_id ) {
// Tell SearchWP to resume listening to edit triggers
searchwp_update_option( 'prevent_delta_triggers', false );
// Re-enable the SearchWP indexer
SWP()->indexer_unpause();
// Trigger the indexer to rebuild the index
SWP()->trigger_index();
}
add_action( 'pmxi_after_xml_import', 'myswp_after_xml_import', 10, 1 );
Я также нашел этот фрагмент ниже, который я поместил в конце в моей функции импорта. Это тоже не работает.
if (function_exists('SWP')) {
SWP()->process_updates();
SWP()->update_index();
}
После прочтения документации я застрял. Я что-то упустил?