[wp-hackers] DB_COLLATE is not used in searches
Bertilo Wennergren
bertilow at gmail.com
Wed Mar 26 07:53:50 GMT 2008
Testing WP-2.1RC1 I found that the collation set in "wp-config.php"
(DB_COLLATE) is not being used in searches. I think it should.
This can easily be fixed. In "wp-includes/query.php" the following part
can be changed as indicated here:
// If a search pattern is specified, load the posts that match
if ( !empty($q['s']) ) {
// [...]
foreach((array)$q['search_terms'] as $term) {
$term = addslashes_gpc($term);
// The following like has been added
if ($wpdb->collate) $collatesql = ' COLLATE ' . $wpdb->collate;
// The following line has been changed
// $collatesql was inserted in two places
$search .= "{$searchand}(($wpdb->posts.post_title LIKE
'{$n}{$term}{$n}'$collatesql) OR ($wpdb->posts.post_content LIKE
'{$n}{$term}{$n}'$collatesql))";
$searchand = ' AND ';
}
// [...]
}
There is probably a more general way to fix this, but the above
simple solution should also work.
--
Bertilo Wennergren <http://bertilow.com>
More information about the wp-hackers
mailing list