Algolia - Wordpress - исключить категорию из индексации

Как я могу исключить определенные категории страниц WordPress из индексации в Algolia?


person File_Submit    schedule 28.07.2016    source источник
comment
Не могли бы вы сообщить нам версию плагина, который вы используете?   -  person rayrutjes    schedule 28.07.2016
comment
В настоящее время - версия 0.1. Я пробовал также версию 0.2.4 - но я не мог исключить конкретную категорию - только категории в целом.   -  person File_Submit    schedule 29.07.2016


Ответы (1)


Прежде всего, я бы порекомендовал вам придерживаться новой версии плагина. На момент написания последней версией была 0.2.5. Действительно, старая версия (0.0.1) больше не будет поддерживаться.

Что касается вашего вопроса, действительно можно отфильтровать, какие сообщения вы хотите отправить в Алголию, и сделать их доступными для поиска.

Из вашего вопроса я понимаю, что у вас есть страницы, назначенные категориям, и вы хотели бы избежать появления страниц из определенных категорий в результатах поиска. Если эти первоначальные утверждения неверны, пожалуйста, прокомментируйте этот ответ, и я с удовольствием обновлю его!

Вы можете подключиться к решению об индексации поста с помощью фильтров WordPress. В вашем случае, если вы хотите исключить страницы из индекса searchable_posts, вы можете использовать фильтр algolia_should_index_searchable_post. Если вы хотите исключить страницы из индекса posts_page, вы можете использовать фильтр algolia_should_index_post.

Вот пример того, как вы можете исключить все страницы из списка категорий, идентифицированных их идентификаторами.

<?php
    // functions.php of your theme
    // or in a custom plugin file.

    // We alter the indexing decision making for both the posts index and the searchable_posts index. 
    add_filter('algolia_should_index_post', 'custom_should_index_post', 10, 2);
    add_filter('algolia_should_index_searchable_post', 'custom_should_index_post', 10, 2);


    /**
     * @param bool    $should_index
     * @param WP_Post $post
     *
     * @return bool
     */
    function custom_should_index_post( $should_index, WP_Post $post ) {
        // Replace these IDs with yours ;)
        $categories_to_exclude = array( 7, 22 );

        if ( false === $should_index ) {
            // If the decision has already been taken to not index the post
            // stick to that decision.
            return $should_index;
        }

        if ( $post->post_type !== 'page' ) {
            // We only want to alter the decision making for pages.
            // We we are dealing with another post_type, return the $should_index as is.
            return  $should_index;
        }


        $post_category_ids = wp_get_post_categories( $post->ID );
        $remaining_category_ids = array_diff( $post_category_ids, $categories_to_exclude );
        if ( count( $remaining_category_ids ) === 0 ) {
            // If the post is a page and belongs to an excluded category,
            // we return false to inform that we do not want to index the post.
            return false;
        }

        return $should_index;
    }

Дополнительную информацию о расширении плагина Algolia Search для WordPress можно найти в документации: Основы расширения плагин

Обновление:

Код был обновлен, чтобы гарантировать, что он не исключает продукт, если он связан с несколькими категориями, и не все из них исключены.

person rayrutjes    schedule 30.07.2016
comment
спасибо! Я загрузил версию 0.2.8 и попробовал код выше в файле functions.php моей темы и нажал переиндексацию в панели администратора WordPress, никакие записи не были проиндексированы в Algolia. - person File_Submit; 04.08.2016
comment
Любая помощь с этой проблемой? - при активации приведенного выше кода (в файле плагина) с моими идентификаторами и переиндексации никакие записи вообще не индексируются в Алголию. - person File_Submit; 10.08.2016
comment
В меню «Журнал» плагина Algolia ошибок не зарегистрировано. Вот код, который я использую: codeshare.io/CFu6V - person File_Submit; 15.08.2016
comment
Не могли бы вы попробовать последнюю версию плагина? wordpress.org/plugins/ Обязательно удалите предыдущие версия первая. Теперь вы можете установить плагин прямо из раздела плагинов WordPress. - person rayrutjes; 30.09.2016
comment
В кодовом решении отсутствовали фактические обратные вызовы фильтра. Теперь он должен работать лучше. - person rayrutjes; 08.10.2016
comment
Хм, он все еще индексируется :/ - person File_Submit; 17.10.2016
comment
У нас был другой пользователь, успешно использующий исправленный фрагмент. Не могли бы вы поделиться своей полной версией, чтобы мы могли ее проверить? Также вы правильно заменили идентификаторы категорий на свои? - person rayrutjes; 17.10.2016