Intereting Posts
Начисление суммарного срока для таксономий привязки Как отображать только родительскую категорию в постоянной ссылке wp_login Action hook с условным тегом Показать все сообщения в категории. использовать get_theme_mod со всех сайтов в сети Переадресация ссылки на меню на основе имени пользователя или идентификатора пользователя Где вызов обратного вызова этой функции? Ошибка: страница с опцией не найдена при сохранении плагина Создайте подпапку разработки для моего сайта WordPress Существуют ли какие-либо скрипты, классы и / или функции, встроенные в WP для плагина для экспорта / импорта сохраненных данных из wp_options? Карусель в WordPress Как использовать wp_add_inline_style для пользовательского CSS, добавленного через короткий код? Мнения и рекомендации по лучшей базовой баребон-теме Правильный способ получения текущей страницы uri Могу ли я обновить миниатюры программно?

Обрезать результат поиска вокруг поискового слова

Я хочу урезать страницу результатов поиска до 20 слов до и 20 слов после выделенного слова поиска. Я получаю точные результаты поиска, и слово поиска выделяется. Я пробовал варианты с wp_trim_words(); такие как:

  $trimmed_content = wp_trim_words( $searchresults, 25, NULL ); echo $trimmed_content; 

но то, что я до сих пор не могу получить, и что я хочу, это результат поиска, который выравнивает 20 слов до и после выделенного слова поиска. Код моего «search.php»:

  <div class="searchresultsbox"> <?php if(have_posts()):while (have_posts()):the_post();?> <a href="<?php the_permalink(); ?>"> <h3 class="title-heading"><?php the_title(); ?></h3> </a> <?php $searchresults = $post->post_content; $highlightword = get_search_query(); $searchresults = str_replace($highlightword, '<span style="background-color:#ffff00;">'.$highlightword.'</span>', $searchresults); echo $searchresults; endwhile; else: echo "No matching result found"; endif; ?> </div><!-- /searchresultsbox --> </div><!-- /collcelltwo --> </div><!-- /tb-one-row --> </div><!-- /tb-one --> 

Огромное спасибо Рику Хеллеуэлу за функцию «str_replace», которая выделяет слово поиска. Спасибо вам за помощь.

Solutions Collecting From Web of "Обрезать результат поиска вокруг поискового слова"

Случайная мысль: поместите строку поиска в массив (с взрывом). Найдите позицию массива выделенной строки. Верните xx для начала и переместите xx для конца. Извлеките эти значения массива, а затем вложите их обратно в строку.

Это будет работать для одного слова searchresult в строке. Вам придется перебирать несколько вхождений слова searchresult.

Скажите, что полный результат поиска имеет 200 слов. Слово searchresult находится в позиции 50. Извлеките слова, начинающиеся с 30 и заканчивающиеся на 70. Верните слова в одну строку. Показать строку.

Возможно, это лучший способ, но это была моя первая мысль.