Intereting Posts
Решение Cache, работающее на уровне файла темы WP не отображает пользовательские поля Array? Как оптимизировать пользовательскую страницу типа сообщений с 25 000 сообщений? Сообщение об ошибке, если пользователь покупает менее 200 евро данного продукта Отображение «измененной даты» в WordPress Двадцать четырнадцать Добавить действие для создания нового сообщения после пожара wp_insert_post? Подумайте, что он создает бесконечную петлю странное поведение template_redirect в IE8 Как удалить дубликат сайта WordPress из поддомена после переезда remove_image_size, похоже, не работает Как заменить все совпадения регулярных выражений с помощью инструмента поиска заметок WP_CLI remove_filter ('comment_author', 'floated_admin_avatar'); не работает Get_Posts, только если в обеих категориях Файлы cookie для проверки подлинности WordPress и ajax calls Удалить крючок действия в классе Случайные символы в конце каждого URL-адреса изображения в сообщении

Заменить слово словом в строке URL

Я пытаюсь заменить слово на каждой странице, например, «Денвер» словом из строки URL, поэтому мне будет понравиться ?city=Atlanta в URL. Поэтому я думал использовать GET PHP, чтобы просто получить город из строки URL и str_replace чтобы заменить его, но какое действие / крючок в WordPress мне нужно прикрепить?

Слово появится на всей странице, включая заголовок, описание логотипа, содержание, нижний колонтитул и т. Д., Поэтому он не может просто заменить содержимое.

Проверьте the_content на фильтр – есть фильтры, такие как the_content , the_title , wp_title и т. Д. Я не уверен, что вы отфильтровываете, чтобы получить описание логотипа и нижний колонтитул – вам, возможно, придется вникать в код вашей темы.

Кроме того, убедитесь, что вы дезинфицируете все, что получаете от $_GETникогда не доверяйте пользовательскому контенту. См. « Проверка данных» для получения дополнительной информации.

str_replace сделает беспорядок любой неудачной разметки на странице, поскольку она заменит соответствующий текст внутри разметки или внутри URL-адресов.

То, что вы хотите, – это измененные версии ответа, который я дал другому вопросу об подсветке поисковых запросов . Это изменение будет highlight_search_term функцией highlight_search_term . Вам просто нужно изменить его, чтобы использовать данные $_GET вместо данных поиска.

 function highlight_search_term($text){ if(!empty($_GET['city']){ $keys = strip_tags($_GET['city']); // nominal validation $pattern = '/<[^>].*?>/i'; preg_match_all($pattern,$text,$matches); $placeholders = array(); foreach ($matches[0] as $v) { $placeholders[] = highlight_search_term_placeholders(); } $text = preg_replace_callback($pattern,'highlight_search_term_cb',$text); $pattern2 = '/(' . $keys .')/iu'; $text = preg_replace($pattern2, ' <span class="search-term">\1</span> ', $text); $text = preg_replace($placeholders,$matches[0],$text); } return $text; }