Привет! Недавно я использовал функцию «Замена слов при просмотре» вместо устаревшего компонента темы «Связать слова».
Это работает отлично. Однако один из пользователей сообщил, что получает всплывающее предупреждение о том, что ссылка уже использовалась в теме. При этом пользователь не публикует ссылку — это системная функция. У пользователя не должно возникать таких неудобств.
Единственная другая небольшая проблема, которую я обнаружил, заключается в том, что если замена ссылки на слово является частью имени пользователя, то часть упоминания @ в их имени заменяется на ссылку.
Я только что проверил на своём тестовом сайте: хотя в тестовом поле показывается совпадение и замена, в «реальном» посте замена не происходит. (Слово для замены = *one)
А, возможно, именно поэтому. Я использую ветку tests-passed, и обновления для неё выходят чаще.
Хотя я заметил, что ваша ссылка нацелена только на часть имени пользователя/слова, а не на всё целиком, как у меня. Не исключено, что у вас тоже включена настройка «Следить за словами с использованием регулярных выражений»? Это может влиять.
Я понял, что проблема возникала, когда был включен параметр watched_words_regular_expression. Я думаю, что у меня есть более эффективное решение этой проблемы, которое станет доступно в ветке tests-passed после слияния PR:
Без включения опции watched words regular expressions это происходит автоматически. Мне пришлось добавить звёздочки-маски (*), чтобы ловить слово, которое является частью имени пользователя или более длинного слова.
С регулярными выражениями это можно сделать с помощью границ (\b). Например, \bsteam\b найдёт только ‘steam’, но не ‘steamVR’ или ‘somethingsteam’.
Я могу воспроизвести частичную замену, если в настройках администратора включена опция watched words regular expressions, так что, возможно, стоит это проверить?
Отлично, проверено в обеих версиях, тесты пройдены.
В стабильной версии есть только замена, без отдельной настройки ссылки в «Следящих словах».
С включённой или выключенной регулярной заменой функция «Следящие слова» не работает с паттерном /bword/b. Более того, для распознавания слова необходимо указывать именно /bword/b, а не просто слово.
В тестовой версии всё работает без необходимости указывать /bword/b в настройках «Следящих ссылок».
Похоже, остаётся только дождаться, когда тестовая версия станет стабильной.
Ах, я думал, вам не хватает только исправления для @упоминаний. Ну ничего, обновление «Следящие слова» звучит так, будто в нём есть несколько полезных доработок для вас, когда вы его получите. Надеюсь, это не займёт долгого времени.
Действительно, можно поэкспериментировать с некоторыми новинками на нашем тестовом сервере, где тесты уже пройдены. К сожалению, наш основной сервер работает на стабильной версии. Есть ряд улучшений, которые я не могу дождаться, пока они появятся в стабильной ветке.