как минимум потратить дни в кошмаре MySQL, когда кто-то может мне помочь. Я работаю над плагином для WP.wordpress поиск по нескольким таблицам по умолчанию поисковый запрос
Моя проблема звучит так просто: чтобы сохранить базу данных wordpress чистой и работоспособной, я решил сохранить дополнительные поля (теги, заголовки, бесплатный текст, URL-адреса, ...) в некоторых дополнительных таблицах и не добавлять типичные мета-поля. Теперь поисковый запрос должен также включать эти поля.
После нескольких часов я обнаружил, что (geoteagging wordpress example):
add_filter('posts_join', 'geotag_search_join');
add_filter('posts_where', 'geotag_search_where');
add_filter('posts_groupby', 'geotag_search_groupby');
до сих пор так хорошо. Теперь пришло время переписать запрос (geotag_search_where), но здесь начинается кошмар ...
имя настраиваемой таблицы: «abc_tags» и поля «abc_title» и «abc_tags». «abc_tags» - это длинное текстовое поле с разделенными запятыми элементами простого текста.
Я не понимаю манипуляции preg_replace с запросом ... Надеюсь, кто-то может помочь.
function geotag_search_where($where)
{
if(is_search()) {
$where = preg_replace(
"/\(\s*post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
"(post_title LIKE $1) OR (geotag_city LIKE $1) OR (geotag_state LIKE $1) OR (geotag_country LIKE $1)", $where);
}
return $where;
}
Thanks.