Добрый день, уважаемые форумчани. Возникла необходимость организации поиска постов, по части произвольного поля.
Именно по части а не строго задавая его значение. С полным значением проблем нет, даже способов реализации несколько, а вот с поиском по части запрос – проблема. Встречал реализацию плагином поиском по произвольным полям, но для меня не подходит, так как база сайта около 1 гб а хостинг обычный шаред.
Код который выводит до 50 постов, произвольное поле которого состоит из слова "Орёл".
<?php
query_posts( array(
‘meta_query’ => array(
array(
‘key’ => ‘_aioseop_description’,
‘value’ => ‘Орёл’,
)
),
‘posts_per_page’ => ’50’
) );?>
<?php while (have_posts()) : the_post(); ?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
<?php endwhile;wp_reset_query();?>
Также задавал похожие запросы напрямую в БД, но не получается задать плавающие границы, что бы поиск включал не все посты, где значение может произвольного поля не обязательно полностью совпадает с маской поиска.
$pages = $wpdb->get_results(
"SELECT post_id
FROM $wpdb->postmeta
WHERE meta_key = ‘_aioseop_description’
AND meta_value = ‘Орёл’
"
);
/* вытаскивает из базы данных заголовки и содержимое
всех опубликованных страниц */
if( $pages ) {
foreach ( $pages as $page ) {
echo $page->post_id;
}
}
Несмотря на это, запрос напрямую к sql нечеткой маской задать получается:
SELECT *
FROM `wp_postmeta`
WHERE `meta_key` LIKE ‘_aioseop_description’
AND `meta_value` LIKE ‘%орел%’ (именно знаки процента показывают что ищем лишь слово среди всего пула текста)
LIMIT 0 , 30
Подскажите, можно ли реализовать необходимую задачу? Так сказать модернизировать первый или второй код, чтобы получить результат как в последнем sql запросе.