首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为WP SearchAsYouType禁用Algolia

为WP SearchAsYouType禁用Algolia
EN

Stack Overflow用户
提问于 2019-02-04 20:03:05
回答 1查看 314关注 0票数 0

我已经为Wordpress实现了Algolia,并且正在自定义"instantsearch.php“文件中的搜索模板。

查看这里的文档,将searchAsYouType参数设置为false可以防止Algolia在用户输入和搜索时检测用户输入和搜索。但是,当您键入“我的网站”时,此参数不会禁用搜索。

下面是我的输入字段小部件和其他自定义组件的代码:

代码语言:javascript
复制
/* Instantiate instantsearch.js */
var search = instantsearch({
    appId: algolia.application_id,
    apiKey: algolia.search_api_key,
    indexName: algolia.indices.searchable_posts.name,
    urlSync: {
        mapping: {'q': 's'},                                                                     
        trackedParameters: ['query']
},
searchParameters: {
    facetingAfterDistinct: true,
    highlightPreTag: '__ais-highlight__',
    highlightPostTag: '__/ais-highlight__'
                    }
                });

    /* Search box widget */
    search.addWidget(
        instantsearch.widgets.searchBox({
            container: '#algolia-search-box',
            placeholder: 'Search ...',
            searchAsYouType: false,
            wrapInput: false,
            poweredBy: algolia.powered_by_enabled
        })
    );

    /* Hits widget */
    search.addWidget(
        instantsearch.widgets.hits({
            container: '#algolia-hits',
            hitsPerPage: 10,
            templates: {
                empty: 'No results were found for "<strong>{{query}}</strong>".',
                item: wp.template('instantsearch-hit')
            },
            transformData: {
                item: function (hit) {

                    function replace_highlights_recursive (item) {
                      if( item instanceof Object && item.hasOwnProperty('value')) {
                          item.value = _.escape(item.value);
                          item.value = item.value.replace(/__ais-highlight__/g, '<em>').replace(/__\/ais-highlight__/g, '</em>');
                      } else {
                          for (var key in item) {
                              item[key] = replace_highlights_recursive(item[key]);
                          }
                      }
                      return item;
                    }

                    hit._highlightResult = replace_highlights_recursive(hit._highlightResult);
                    hit._snippetResult = replace_highlights_recursive(hit._snippetResult);

                    console.log(hit);

                    if ( hit.post_excerpt != '' ){
                        hit._snippetResult['content']['value'] = hit.post_excerpt;  
                    }
                    if ( hit.short_title.length > 0 && hit.short_title[0] != '' ){
                        hit._highlightResult['post_title']['value'] = hit.short_title[0];   
                    }

                    return hit;
                }
            }
        })
    );

    /* Pagination widget */
    search.addWidget(
        instantsearch.widgets.pagination({
            container: '#algolia-pagination'
        })
    );

    /* Tags refinement widget */
    search.addWidget(
        instantsearch.widgets.refinementList({
            container: '#facet-tags',
            attributeName: 'taxonomies.aar_article_type',
            operator: 'and',
            limit: 15,
            sortBy: ['isRefined:desc', 'count:desc', 'name:asc'],
            templates: {
                header: '<h2 class="widgettitle">Filter Results</h2>'
        }
    })
);

/* Start */
search.start();

我已经将该参数添加到搜索框小部件中,但当我键入时,页面仍然会自动更新,而不必单击submit。我是不是漏掉了配置什么的?

EN

回答 1

Stack Overflow用户

发布于 2019-02-05 14:37:25

实现此操作的正确属性是searchOnEnterKeyPressOnly,而不是searchAsYouType

我正在使用的小部件的适当文档可以在这里找到https://community.algolia.com/instantsearch.js/v2/widgets/searchBox.html#struct-SearchBoxWidgetOptions-searchOnEnterKeyPressOnly

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54523532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档