Замена/удаление текста в постах WP по маске

I
На сайте с 18.08.2017
Offline
27
908

Добрый день.

Перерыл уже всё, но решения не нашел.

Есть много постов на сайте в вордпресс, где где из текста нужно удалить код со ссылками но с условием.

Код такой:

<p><a href="http://domen1.net/xxxxxxxxxx.html" target="_blank"></a> </p>

Его нужно удалить полностью из всех постов, но с условием наличия в нем именно domen1. Причем xxxxxxxxxx - это переменная часть и везде разная.

Сначала смотрел в сторону

UPDATE table SET field = REPLACE(field, 'текст1', 'текст2');

с заменой на пустоту, но так и не нашел решения, чтоб можно было задать маску для параметра 'текст1' (например через LIKE, типа <p>%http://domen1.net%</p>)

Теперь уже не знаю, что использовать. Может кто посоветовать?

PS
На сайте с 07.06.2018
Offline
34
#1
iksrman:
Может кто посоветовать?

сделайте дамп БД

Откройте его notepad++

и регулярными выражениями произведите замену.

SeVlad
На сайте с 03.11.2008
Offline
1609
#2
iksrman:
еперь уже не знаю, что использовать. Может кто посоветовать?

https://wordpress.org/plugins/search-regex/ или любой др плагин для замены в базе с поддержкой регулярок.

prihod_slnk:
Откройте его notepad++
и регулярными выражениями произведите замену.

Если эта будет замена не в непосредственно контенте (напр в шоркоде плага или в виджете), то такой способ может привести к проблемам.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
I
На сайте с 18.08.2017
Offline
27
#3

SeVlad, спасибо за плагин. Очень помогло, решил проблему.

А еще не знаете, в таком вопросе. Много постов спарсенных, потом чистилось немного и в итоге в постах много мусора ненужного в виде лишних <p> <a> <strong> как в паре с закрывающими так и без. Если открываю пост в админ панели для редактирования то при переходе из текстового режима в визуальный, а потом обратно сам вордпресс чистит подавляющее большинство этого хлама. Но сами понимаете каждый пост открывать и сохранять таким образом - не вариант. Как можно сделать это массово и автоматически?

SeVlad
На сайте с 03.11.2008
Offline
1609
#4
iksrman:
Как можно сделать это массово и автоматически?

А в исправленных постах не почистилось?

Если да - тем же плагом сделай равную замену (напр пробел на пробел). По идее должно помочь.

I
На сайте с 18.08.2017
Offline
27
#5

SeVlad, неа. Там еще проблема в том, что они идут вперемешку с разрывами строк \n. Скажем так <p> \n \n <p> \n </strong>

Но это естественно только в БД видно.

SeVlad
На сайте с 03.11.2008
Offline
1609
#6
iksrman:
неа

Ну тогда хз. на вскидку не скажу. Это вообще TinyMce чистит, и я надеялся что wp_update_post запустит механизм.

Но тогда, если в контент нет шорткодов и тп, то можно и в правильном блокноте почистить. Только чистить не во всей базе, а в таблице [pref]_post.

I
На сайте с 18.08.2017
Offline
27
#7
SeVlad:
Ну тогда хз. на вскидку не скажу. Это вообще TinyMce чистит, и я надеялся что wp_update_post запустит механизм.
Но тогда, если в контент нет шорткодов и тп, то можно и в правильном блокноте почистить. Только чистить не во всей базе, а в таблице [pref]_post.

Блокнотом трудоемко получится. Много постов и комбинаций этого мусора тоже. Запустить бы вот эту вордпрессовую функцию для всех постов, было бы конечно отлично...

SeVlad
На сайте с 03.11.2008
Offline
1609
#8
iksrman:
Блокнотом трудоемко получится. Много постов и комбинаций этого мусора тоже. Запустить бы вот эту вордпрессовую функцию для всех постов, было бы конечно отлично...

Эта функция НЕ делает чистку (это я наделся ;) ).

А насчёт блокнота - то я чуть погарчился. Можно ж тем де плагином неск раз пройтись. Не так уж и много замен же.

Или через экспорт-импорт. Только не родным, а напр через csv с заменой при импорте (чтобы не дублировать и не разбить связи по ID, если где есть).

I
На сайте с 18.08.2017
Offline
27
#9

SeVlad, через этот плагин не получается. Он не понимает разрывы строк \n

По крайней мере я не смог этого добиться.

Скажем есть такой мусор:

<p> </strong> \n \n <p> \n</p>

Если я так и ввожу, он ничего не находит. Если ввожу без \n то тоже не находит.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий