bp_search_result_match( $in, $wordToFind, int $numWordsToWrap = 10 )
Find a certain word in a string, and then wrap around it
Description
Parameters
- $in
-
(Required)
- $wordToFind
-
(Required)
- $numWordsToWrap
-
(Optional)
Default value: 10
Return
(string)
Source
File: bp-search/bp-search-functions.php
function bp_search_result_match( $in, $wordToFind, $numWordsToWrap = 10 ) {
$words = preg_split( '/\s+/', $in );
$wordsToFind = preg_split( '/\s+/', $wordToFind );
foreach ( $wordsToFind as $key => $value ) {
$found_words = preg_grep( "/" . $value . ".*/i", $words );
$found_pos = array_keys( $found_words );
if ( count( $found_pos ) ) {
$pos = $found_pos[0];
break;
}
}
if ( isset( $pos ) ) {
$start = ( $pos - $numWordsToWrap > 0 ) ? $pos - $numWordsToWrap : 0;
$length = ( ( $pos + ( $numWordsToWrap + 1 ) < count( $words ) ) ? $pos + ( $numWordsToWrap + 1 ) : count( $words ) ) - $start;
$slice = array_slice( $words, $start, $length );
$pre_start = ( $start > 0 ) ? "…" : "";
$post_end = ( $pos + ( $numWordsToWrap + 1 ) < count( $words ) ) ? "…" : "";
$out = $pre_start . implode( ' ', $slice ) . $post_end;
return $out;
}
return $in;
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.