- This topic has 3 replies, 2 voices, and was last updated 6 years ago by
erdalc90.
-
AuthorPosts
-
May 23, 2020 at 7:44 am #27513
erdalc90
ParticipantDear Ernest
I’m using ajax search pro a long time. I had a request for support a few years ago :). Now I have a question.
How can I show “ACF array fields” in search results. I tried to showing like product attribute array but nıt work. This is very important to me. I’m ready to pay for your support.
thank you, best regards.
May 23, 2020 at 8:03 am #27514erdalc90
ParticipantYou cannot access this content.
May 23, 2020 at 10:40 am #27521Ernest Marcinko
KeymasterHi,
The plugin should recognize some basic array structures in the custom field values, and will print them comma separated. This may require a custom code to parse and print correclty.
I would try this custom code variation first. Try adding this custom code to the functions.php in your theme/child theme directory. Before editing, please make sure to have a full site back-up just in case!
add_filter( 'asp_results', 'asp_custom_field_to_results', 10, 1 ); function asp_custom_field_to_results( $results ) { $custom_fields = 'alternate_color_name'; // Enter the custom field names, comma separated $field = 'content'; // 'title' or 'content' $position = 'after'; // 'before' or 'after' $delimiter = ' '; // character between the field value and the field $fields = explode(',', $custom_fields); foreach ( $fields as $custom_field ) { $custom_field = trim($custom_field); foreach ($results as $k=>&$r) { if ($r->content_type != 'pagepost') continue; if ( function_exists('get_field') ) $meta_value = get_field( $r->id, $custom_field, true ); // ACF support else $meta_value = get_post_meta( $r->id, $custom_field, true ); if ( is_array($meta_value) ) { $meta_value = implode(', ', $meta_value); } // Modify the post title to add the meta value if ( $meta_value != '' ) { if ( $field == 'title' ) { if ( $position == 'before' ) $r->title = $meta_value . $delimiter . $r->title; else $r->title .= $delimiter . $meta_value; } else { if ( $position == 'before' ) $r->content = $meta_value . $delimiter . $r->content; else $r->content .= $delimiter . $meta_value; } } } } return $results; }May 23, 2020 at 3:01 pm #27523erdalc90
ParticipantThank you so much.
-
AuthorPosts
- You must be logged in to reply to this topic.