jorgeisraelpea
  • 0
Новичок

WordPress автоматически связывает адреса электронной почты с открытым текстом

  • 0

Я использую последнюю версию WordPress (3.1.1). Мне кажется, или WordPress теперь автоматически связывает адреса электронной почты в виде простого текста?

Я пишу jdoe@email.com как комментарий, и он отображается как<a href="mailto:jdoe@gmail.com">jdoe@gmail.com</a>

Я работаю над плагином, который фильтрует текст комментариев с помощью get_comment_text фильтра, а затем впоследствии изменяет представление адреса электронной почты. Раньше этот плагин работал нормально, но, как я уже сказал, теперь WordPress автоматически связывает адреса электронной почты.

Я полагал, что WordPress будет следовать своим собственным правилам и делать это с помощью фильтра, поэтому я пошел дальше и добавил уровень приоритета к своему собственному фильтру, 9000 полагая, что таким образом я могу заставить свой срабатывать после того, как WordPress закончит совать свой нос во что-то. это не его дело, но это не сработало.

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

В моем плагине уже есть функциональность для работы с электронными письмами в виде простого текста, но он тоже не работает, потому что после того, как он изменяет представление письма в виде простого текста, WordPress затем идет и связывает его.

РЕДАКТИРОВАТЬ : Один Trick Poney указал мне на то, make_clickable что за это отвечает. Он действительно добавлен как фильтр в wp-includes/default-filters.php , с приоритетом 9 . Тем не менее, я уже пытался, как я упоминал выше, установить уровень приоритета, 9000 чтобы заставить мой плагин работать после того, как WordPress сделал свое грязное дело. Это не сработало, потому что я получаю оригинальный нефильтрованный контент? Я полагал, что получу отфильтрованный контент (то есть уже связанный контент).

Затем я пошел дальше и активировал фильтр простого текста (который применяется к электронным письмам с открытым текстом) и присвоил ему приоритет -9000, чтобы он попадал раньше make_clickable, но опять же из этого ничего хорошего не вышло, потому что когда make_clickable он срабатывал, он продолжался. и подумал, что было бы неплохо связать ссылки, которые я создаю. Он «связывает» URL-адреса в href атрибуте ссылки, что приводит к очень беспорядочному выводу.

Таким образом, кажется, что лучше всего было бы войти после того, как WordPress сделал свое дело, после того, как make_clickable он сработал, но, как я уже сказал, по какой-то причине, хотя я применяю свой фильтр с уровнем приоритета 9000, по сравнению с make_clickable уровнем приоритета которого только 9, вроде ничего не происходит. Я продолжу расследование.

Я могу понять и представить, что разработчики WordPress пытались сделать его более удобным для пользователя, но это, похоже, вызвало некоторые проблемы с крайним случаем (например, связывание атрибутов href в уже существующих ссылках).

Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ 2 : Да, я только что протестировал свой фильтр с уровнем приоритета 9000, который, как мне кажется, должен запускаться после WordPress make_clickable, уровень приоритета которого равен 9. Мой фильтр получает неизмененный/нефильтрованный контент. Я не знаю, как и почему это происходит. Я бы предположил, что имея более поздний приоритет, я получу контент, поскольку он до сих пор был изменен фильтрами с более высоким приоритетом, иначе возникали бы такие ситуации (коллизии?), как эта.

Share
  1. это make_clickable фильтр, примененный к comment_text. добавьте свой фильтр с -9000 приоритетом или что-то в этом роде

    • 0
  2. Я заметил, что фильтр WordPress make_clickable был прикреплен к comment_text хуку фильтра, а не get_comment_text, что я и использовал некоторое время. Ранее я исследовал, может ли это иметь место, особенно выясняя, в чем разница между ними, и я думаю, что читал что-то об comment_text использовании get_comment_text , так что, возможно, он делал что-то более одного раза, что привело к странному результату, который я нашел.

    Я решил эту проблему, изменив свой фильтр, чтобы вместо этого подключиться comment_text, таким образом, приоритет имел бы значение (дух), и оставил уровень приоритета моего фильтра равным 9000. Предварительные тесты показывают, что все работает. Таким образом, мне не нужно беспокоиться о том, что wordpress изменит мой вывод непредсказуемым образом, вместо этого я могу просто работать с тем, что извергает wordpress. По крайней мере, так я знаю, с чем я могу работать и с чем я не могу работать.

    Еще раз спасибо одному трюковому пони за наводку.

    • 0

Оставить ответ

You must login to add an answer.