The ajax_term_search_results WordPress PHP filter allows you to modify the search results returned by an Ajax term search.
Usage
add_filter('ajax_term_search_results', 'your_custom_function', 10, 3); function your_custom_function($results, $taxonomy_object, $search) { // your custom code here return $results; }
Parameters
$results
(string[]): Array of term names.$taxonomy_object
(WP_Taxonomy): The taxonomy object.$search
(string): The search term.
More information
See WordPress Developer Resources: ajax_term_search_results
Examples
Add a prefix to term names
In this example, we add a prefix to each term name in the search results.
function add_prefix_to_term_names($results, $taxonomy_object, $search) { $prefixed_results = array_map(function ($term) { return 'Prefix: ' . $term; }, $results); return $prefixed_results; } add_filter('ajax_term_search_results', 'add_prefix_to_term_names', 10, 3);
Filter out specific terms
In this example, we remove terms containing the word “example” from the search results.
function remove_example_terms($results, $taxonomy_object, $search) { return array_filter($results, function ($term) { return strpos($term, 'example') === false; }); } add_filter('ajax_term_search_results', 'remove_example_terms', 10, 3);
Sort terms by length
In this example, we sort the terms in the search results by their length.
function sort_terms_by_length($results, $taxonomy_object, $search) { usort($results, function ($a, $b) { return strlen($a) - strlen($b); }); return $results; } add_filter('ajax_term_search_results', 'sort_terms_by_length', 10, 3);
Limit the number of results
In this example, we limit the number of terms in the search results to a maximum of 5.
function limit_term_results($results, $taxonomy_object, $search) { return array_slice($results, 0, 5); } add_filter('ajax_term_search_results', 'limit_term_results', 10, 3);
Append term count to term names
In this example, we append the term count to each term name in the search results.
function append_term_count($results, $taxonomy_object, $search) { global $wpdb; $updated_results = []; foreach ($results as $term_name) { $term = get_term_by('name', $term_name, $taxonomy_object->name); if ($term) { $count = $term->count; $updated_results[] = $term_name . ' (' . $count . ')'; } } return $updated_results; } add_filter('ajax_term_search_results', 'append_term_count', 10, 3);