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