Поиск для плейлиста
Доброго дня!
Хочу реализовать поиск для сайта по названию трека в плейлисте.
Так как плейлист выводиться стандартным шорткодом wp. То названия не могут захватиться поиском.
Лучшим решением думаю будет прописать названия в метаполе записи. Но не знаю как скормить это в серч куэри.
Буду рад вашим комментам.
Предыдущая идея с подсветкой поисковой фразы в записи при переходе со страницы результатов поиска отработала отлично. Правда были трудности с тем что это все кэшировалось. В итоге конечный код получился такой. Кому интересно, кто не видел код ниже..
function content_search($text) { $id = get_the_ID(); if( isset( $_GET['search'] ) ) { $start = true; if( isset( $_GET['id'] ) ) { if( $id != $_GET['id'] ) { $start = false; } else { nocache_headers(); } } if( $start ) { $return_url = esc_url( wp_get_referer() ); if( $return_url ) { $var = wp_parse_url($return_url, PHP_URL_QUERY); if( substr($var, 0, 2) == 's=' ) { $search = urldecode(mb_substr($var, 2, (mb_strlen($var) - 2))); if( $search ) { $temp = wp_strip_all_tags($text); if( mb_stripos($temp, $search) !== false ) { $text = preg_replace( '#(' . preg_quote($search) . ')#uis', '<mark id="search">$1</mark>', $text, 1 ); } } } } } } return $text; }
Могут... модифицируйте шорткод или другие решения по любому есть, надо на месте смотреть.
Ниже я даю код, я не говорю что он рабочий, просто в качестве примера как скормить. Проверял на отдельном пост тайпе
Интересное решение!
Тоже самое можно закинуть в add_filter('pre_get_posts','SearchFilter');, но оно будет работать по принципу если нет результатов поиска, то ищем в мета полях, что не совсем удачное решение. Спасибо за ответ )
А код выше у меня в add_filter( 'the_content'.. где search говорит что мы перешли в статью со страницы результатов поиска, а $id говорит что мы перешли в кастомную страницу со страницы результатов и нам нужно подсветить слово в куске страницы найдя его по $id.