Код удаления всех внешних ссылок для Wordpress

J9
На сайте с 31.05.2012
Offline
62
800

Здравствуйте.

Сайт на Wordpress попал под санкции Яндекса. Теперь нужно удалить все внешние ссылки из контента. На сайте более 3000 постов, удалить вручную не реально. Есть код:

<?php function dellinks($content) {

$content = preg_replace('|<a[^>]+>([^<]+)</a>|is', '$1', $content);

return $content;

}

add_filter ('the_content', 'dellinks'); ?>

Но он удаляет все ссылки, в том числе и внутренние. Должны быть удалены только внешние. Кто может дописать код?

[umka]
На сайте с 25.05.2008
Offline
456
#1

Лучше удалить ссылки из постов в базе, чтобы не совершать лишние действия при каждой загрузке поста.

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

Проще написать скриптик, который всё это сделает.

Лог в помощь!
G-and-Y
На сайте с 29.06.2013
Offline
156
#2

открыть бд в notepad++

вкл. регулярные выражения

поиск

<a href="http://мойсайт

замена

<f href="http://мойсайт

если ссылки вида <a href="/

поиск

<a href="/

замена

<f href="/

потом назад

удаляем ссылки

поиск

<a([\s\S]+?)</a>

замена

(пусто)

возвращаем назад

поиск

<f href="http://мойсайт

замена

<a href="http://мойсайт

Абузо-устойчивые впс в Нидерландах от 5$/мес (https://cp.inferno.name/aff.php?aff=2991)
J9
На сайте с 31.05.2012
Offline
62
#3

G-and-Y, Супер метод! Но текст анкора тоже удаляется. Во всех постах текст будет с пропущенными словами. Как это можно обойти?

M
На сайте с 04.10.2014
Offline
89
#4

jam99998, в вп есть модуль закрытые комментариев от индексации.

Заработок для вебмастера от 500 рублей в сутки (https://kwork.ru/ref/2472548)
J9
На сайте с 31.05.2012
Offline
62
#5

mcbatman, не вариант, нет уверенности, что ПС полностью игнорируют ссылки в тегах.

M
На сайте с 04.10.2014
Offline
89
#6

jam99998, мой вам совет . Почитайте про форум мегасофт, они вам за 15 рублей почистят все. Еще 10 рублей добавите и отпимизацию сделают. Я кстати, без шуток!

G-and-Y
На сайте с 29.06.2013
Offline
156
#7

Удаляем

рас

<a([\s\S]+?)>

два

</a>

И текст остается.

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