WordPress Algolia - 将ACF转发器字段编入索引作为自定义属性

时间:2017-07-05 15:17:57

标签: wordpress algolia

我正在尝试将ACF字段编入索引作为自定义属性。根据Algolia文档(https://community.algolia.com/wordpress/advanced-custom-fields.html),我设法索引简单的ACF字段。我设法索引转发器字段,但我不确定这是否是最好的方法。是否有人设法解决此问题,并且不仅能够索引ACF转发器字段,而且能够在WordPress网站上搜索时将其拖到Instantsearch模板上?

add_filter( 'algolia_post_shared_attributes', 'my_event_attributes', 10, 2 );
add_filter( 'algolia_searchable_post_shared_attributes', 'my_event_attributes', 10, 2 );


function my_event_attributes( array $attributes, WP_Post $post ) {

if ( 'events' !== $post->post_type ) {

    return $attributes;
}


$attributes['description'] = get_field( 'event_description', $post->ID );
$attributes['time'] = get_field( 'event_time', $post->ID );
$attributes['date'] = get_field( 'event_date', $post->ID );
$repeater = get_field( 'event_schedules', $post->ID );

$x = 0;


foreach ($repeater as $item) {
    unset($item['schedule_info']);


    $schedules = array ('location'=>$item['location'],'location_new'=>$item['location_new'],'event_date'=>$item['event_date'],'start_time'=>$item['start_time'],'end_time'=>$item['end_time'], 'all_day'=>$item['all_day'], 'cancel'=>$item['cancel'], 'is_location_change'=>$item['is_location_change']);
    $attributes['event_schedules'][$x] = $schedules;
    $x = $x + 1;
}


return $attributes;
}

Algolia Dashboard

[1]

1 个答案:

答案 0 :(得分:0)

WordPress后端和Algolia指数CPT的方式存在根本区别。您可以在插件设置中为所有CPT编制索引 - >自动填充,您可以在插件设置下为常规主列表编制索引 - >搜索页面。如果您要创建自己的搜索模板,则只能索引当前正在使用的特定CPT,但如果您正在使用默认搜索即时搜索模板,则需要索引常规索引。