Intereting Posts
Виджет-подборщик Могу ли я каким-либо образом отображать логотип сайта, а также заголовок и подпись? Использование is_front_page в sidebar.php скрыть что-то на одной странице, если у текущего автора есть только одно сообщение WordPress автоматически переадресовывает 301, если я изменяю постоянную ссылку Как предоставить источник изображения в редакторе страниц WordPress? Как использовать шаблон пользовательских комментариев Добавить Мета-бокс Befoure Заголовок сообщения Получать все оставшиеся сообщения после определенного идентификатора сообщения Создание oEmbed работы над полем выдержки Почему WP_Image_Editor не сохраняет изображения с помощью API файловой системы? Переопределение поля галереи Могу ли я настроить WordPress для использования постфикса без плагина? Как передать пароли пользователей с одного сайта WordPress на другой? обеспечить, чтобы пользователь мог регистрироваться только на одном компьютере за раз?

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

Я хочу урезать страницу результатов поиска до 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. Верните слова в одну строку. Показать строку.

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