The like_escape() WordPress PHP function was formerly used to escape strings before searching the database. However, it was poorly documented and never worked as described.
Usage
Instead of using like_escape(), use the wpdb::esc_like() method.
global $wpdb; $search_string = "example"; $escaped_string = $wpdb->esc_like($search_string);
Parameters
$text(string) – The text to be escaped.
More information
See WordPress Developer Resources: like_escape()
like_escape() is deprecated since WordPress 4.0.0. Use wpdb::esc_like() instead.
Examples
Basic usage of wpdb::esc_like()
Escaping a search string before using it in a custom SQL query.
global $wpdb; $search_string = "John's Pizza"; $escaped_string = $wpdb->esc_like($search_string); $query = "SELECT * FROM $wpdb->posts WHERE post_title LIKE '%$escaped_string%'"; $results = $wpdb->get_results($query);
Escaping multiple strings
Escaping multiple strings for a more complex SQL query.
global $wpdb;
$search_strings = ['John', 'Pizza'];
$escaped_strings = array_map([$wpdb, 'esc_like'], $search_strings);
$query = "SELECT * FROM $wpdb->posts WHERE post_title LIKE '%" . implode("%' OR post_title LIKE '%", $escaped_strings) . "%'";
$results = $wpdb->get_results($query);
Escaping a string for a meta query
Using wpdb::esc_like() to escape a string for a meta query.
global $wpdb;
$meta_key = 'location';
$search_string = "John's Pizza";
$escaped_string = $wpdb->esc_like($search_string);
$args = [
'post_type' => 'post',
'meta_query' => [
[
'key' => $meta_key,
'value' => $escaped_string,
'compare' => 'LIKE'
]
]
];
$query = new WP_Query($args);
Escaping a string for a taxonomy query
Using wpdb::esc_like() to escape a string for a taxonomy query.
global $wpdb;
$taxonomy = 'category';
$search_string = "John's Pizza";
$escaped_string = $wpdb->esc_like($search_string);
$args = [
'post_type' => 'post',
'tax_query' => [
[
'taxonomy' => $taxonomy,
'field' => 'name',
'terms' => $escaped_string,
'operator' => 'LIKE'
]
]
];
$query = new WP_Query($args);
Escaping a string for a user query
Using wpdb::esc_like() to escape a string for a user query.
global $wpdb;
$search_string = "John's Pizza";
$escaped_string = $wpdb->esc_like($search_string);
$args = [
'search' => "*$escaped_string*",
'search_columns' => ['display_name']
];
$user_query = new WP_User_Query($args);