#wordpress
#wordpress
Вопрос:
Я пытаюсь отладить некоторое поведение на моем сайте в отношении поиска. Происходит то, что я захочу найти что-то вроде: What's your Customers' Love Language?
, и оно отобразит его, если я введу What'
. Проблема в том, что как только я набираю что-либо после апострофа, он внезапно не может найти мой пост.
Это происходит для всех сообщений с таким заголовком.
Вот код для моей формы поиска (с использованием этой темы):
<div class="search">
<form role="search" action="<?php echo esc_url(home_url('/')); ?>" method="get">
<input type="text" name="s" class="<?php echo implode(' ', $classes); ?>" value="<?php the_search_query(); ?>" placeholder="<?php _e('Search...', 'bunyad'); ?>"/>
<button class="search-button" type="submit"><i class="fa fa-search"></i></button>
</form>
</div> <!-- .search -->
Странно то, что он распознает апострофы, поэтому я не думаю, что мне нужно выполнять очистку специальных символов. Он использует поиск по умолчанию в WP без добавления дополнительных материалов, так что я действительно в тупике.
Любая помощь, которая может быть предложена, будет высоко оценена. Спасибо
Ответ №1:
Кажется, что WordPress запускает wptexturize()
функцию, которая преобразует кавычки в интеллектуальные кавычки, поэтому вместо '
того, чтобы вы видите ’
, поэтому, когда вы ищете what’s
, ничего не будет возвращено, потому что, хотя сообщение написано так, на самом деле оно написано what's
.
Способ исправить это — запретить запуск этой функции, поместив add_filter('run_wptexturize', '__return_false');
ваш function.php
файл.
Смотрите здесь для получения дополнительной информации:
WordPress заменяет одинарные кавычки на недружественные для поиска