SearchWP не работает должным образом после импорта сообщений - PullRequest
0 голосов
/ 21 октября 2019

Я использую 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();
} 

После прочтения документации я застрял. Я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...