Relevanssi can index extra fields created with Profile Builder Pro. All you need to do is to add the names of the custom fields to the Relevanssi setting “User fields to index” (this is a Premium feature, so you need to have Relevanssi Premium). You can find the names of the fields from the Profile Builder > Manage Fields page: use the value in the “Meta Name” column.
Relevanssi doesn’t know how to use the extra fields in excerpts. This code adds all indexed fields to the user profile content before excerpts are built:
add_filter( 'relevanssi_pre_excerpt_content', 'rlv_profile_builder', 10, 2 ); function rlv_profile_builder( $content, $post ) { if ( isset( $post->user_id ) ) { $fields = get_option( 'relevanssi_index_user_fields' ); if ( !empty( $fields ) ) { $fields_array = explode( ',', $fields ); foreach( $fields_array as $user_field ) { $field_content = get_user_meta( $post->user_id, $user_field, true ); $content .= " " . $field_content; } } } return $content; } |
Permalinks are another problem. By default, the permalinks in search results point to the site front page. Switching the permalinks on the theme search results template to use relevanssi_get_permalink()
instead of get_permalink()
or the_permalink()
will help a bit, but not enough: now the links point to the WordPress user profile pages. However, Profile Builder Pro profile pages will use a different URL structure. Another filter function is needed:
add_filter( 'relevanssi_user_profile_to_post', 'rlv_adjust_url' ); function rlv_adjust_url( $user ) { $user->link = "/url/to/user/" . $user->user_id . "/"; return $user; } |
Change the /url/to/user/
to match the URL structure used on your site. This change requires you to use relevanssi_get_permalink()
to display the permalinks, the_permalink()
or get_permalink()
will not work.
Profiles created by Profile Builder Pro front end forms do not get automatically indexed by Relevanssi. This is because of the user account generation process in Profile Builder Pro doesn’t probably trigger all the filter hooks WP does, and thus Relevanssi doesn’t notice the new users are generated.
Profile Builder Pro has an action hook that can be used to nudge Relevanssi a bit. Just add this code to the theme functions.php, and Relevanssi will notice the new users and will index them:
add_action( 'wppb_register_success', 'rlv_index_wppb_users', 20, 3 ); function rlv_index_wppb_users( $http_request, $form_name, $user_id ){ relevanssi_index_user($user_id, false); } |