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.
Table of contents
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);