当前位置:  开发笔记 > 编程语言 > 正文

Algolia for Wordpress:在创建过滤器构面小部件时,如何对多个属性的值求和?

如何解决《AlgoliaforWordpress:在创建过滤器构面小部件时,如何对多个属性的值求和?》经验,为你挑选了1个好方法。

我在Wordpress中使用Algolia搜索,我正在尝试创建一个允许用户根据数值范围过滤结果的方面.问题是我需要获得许多属性的总和以进行比较.

例如,假设我有以下数据:

{
  "paid_staff_male": 24,
  "paid_staff_female": 21,
  "paid_staff_other": 2
}

如何创建一个facet小部件,允许用户使用最小到最大滑块,或者使用最小和最大两个输入来根据总付费人员过滤结果?

因此,在上面的例子中,这篇文章共有47名付薪员工.我如何生成一个如下所示的构面/过滤器:

Paid Staff
0 <--[40]---------[500]--------------> 1000

...或这个:

Paid Staff
   Min        Max
[__40___] - [__500__]

以下是我的facets当前在我的instantsearch.js文件中的外观:

search.addWidget(
    instantsearch.widgets.menu({
        container: '#some-facet',
        attributeName: 'some_attribute',
        sortBy: ['isRefined:desc', 'count:desc', 'name:asc'],
        templates: {
            header: '

Facet Title

' } }) );

在"attributeName"下,我需要返回"paid_staff_male","paid_staff_female"和"paid_staff_other"的总和.

我需要这个:

attributeName: sum('paid_staff_male', "paid_staff_female", "paid_staff_other"),

任何建议将不胜感激 :)



1> rayrutjes..:

instantsearch.js价格范围小部件

关于用户界面,您可能希望使用以下一个或两个instantsearch.js小部件:

范围滑块

价格范围

准备过滤数据

Algolia在索引时计算了很多东西,以确保查询时的速度尽可能好.

在您的情况下,为了能够为3个不同的属性设置唯一的过滤器,您应该在应用程序级别进行计算,并将该计算的结果作为记录的新属性部分发送.

如何使用Algolia插件为WordPress发送自定义属性

下面是一些代码,它们可以帮助您将总和作为新属性推送,并使其读取分面:

ID, 'paid_staff_male', true )
    + get_post_meta( $post->ID, 'paid_staff_female', true )
    + get_post_meta( $post->ID, 'paid_staff_other', true );
}

/**
 * Make sure you can facet on the newly available attribute.
 * 
 * @param array $settings
 *
 * @return array
 */
function custom_attributes_for_faceting( array $settings )  {

    $settings['attributesForFaceting'][] = 'paid_staff_sum';

    return $settings;
}

add_filter( 'algolia_posts_index_settings', 'custom_attributes_for_faceting' );
add_filter( 'algolia_searchable_posts_index_settings', 'custom_attributes_for_faceting' );

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有