Я как то писал о плагине для внутренней перелинковки SEO Smart Links . Плагин со всех сторон замечательный. Но к сожалению с версиями выше WordPress 3.0 обнаружились проблемы с кириллицей. Автор плагина начал тупо рубить бабки, наделал кучу платных версий плагина, а на бесплатную кладет с прибором ( впрочем его трудно осуждать, я его не берусь осуждать, всё таки бесплатная версия есть, давно им поддерживается и всё такое ), кладет вплоть до того что мол да не работает SEO Smart Links с кириллицей – покупайте другую версию там поддержка UTF-8 и всё отлично. К счастью решение есть и оно не сложное.

На официальном форуме некто Hristofor Lukanov написал как эту проблему можно легко решить. Спасибо ему большое. Ниже перепечатка.

В файле seo-links.php найти строку:
[cc lang=”php”]$reg = $options[‘casesens’] ? ‘/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))\b($name)\b/msU’ : ‘/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))($name)\b/imsU';[/cc]
И заменить её на
[cc lang=”php”]$reg = $options[‘casesens’] ? ‘/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>)[^a-zA-Zа-яА-Я0-9_])($name)([^a-zA-Zа-яА-Я0-9_])/msU’ : ‘/(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>)[^a-zA-Zа-яА-Я0-9_])($name)([^a-zA-Zа-яА-Я0-9_])/imsU';[/cc]

Затем найти:
[cc lang=”php”]$replace=”$1“;[/cc]
Заменить на:
[cc lang=”php”]$replace=”$1$2″;[/cc]
И всё работает.
Кстати в последней строке можно прописать класс ссылки, например так
[cc lang=”php”]$replace=”$1$2″;[/cc]
А потом оформить в стиле так чтобы спрятать сеошную перелинковочную ссылку от посетителей.

По ссылке ниже исходник того плагина что работает здесь на блоге azzrael.ru. Полностью стопроцентов рабочий. Скопировал с админки.

Исправленый для кириллицы SEO Smart Links

7 января 2011 |

14 Комментариев к “Решение: SEO Smart Links не работает с кириллицей в WP 3.x.x”

  1. Azzrael 12 января, 2011

    Если вдруг SEO Smart Links у вас стал вставлять ссылки на себя с анкором названия статьи – снимите галку с:

    Target

    The targets SEO Smart links should consider. The match will be based on post/page title or category/tag name, case insensitive.

    Posts
    Pages

    Вроде и очевидно а я долго тупил на ровном месте :)

  2. Igor 16 марта, 2011

    Установил этот плагин, но у меня что то совсем без изменений на блоге. Дополнительных полей не появилось.
    И что то не то, Вы писали
    ” В файле seo-links.php найти строку: что то совсем ее там нет.

  3. Azzrael 16 марта, 2011

    Слева в колонке “Параметры” должен появиться раздел “SEO Smart Links” – там, соотв., всё и настраивается.
    ——————————————-
    » В файле seo-links.php найти строку: что то совсем ее там нет.
    Скачал свежую версию http://www.prelovac.com/vladimir/wordpress-plugins/seo-smart-links

    там всё есть – строка №114

  4. Den 10 мая, 2011

    Добрый день. Сделал все по инструкции, нашел строчку заменил, но вордпресс вообще перестает выводить текст статьи при просмотре. Может тут есть какая-то синтаксическая ошибка? К сожалению не настолько хорошо разбираюсь в регулярных выражениях php. Я пробовал заменить \b на \s – линки начинают работать, но вырезаются тогда пробелы вокруг ключевого слова. Хелп ми плиз :)

  5. Azzrael 12 мая, 2011

    залил и добавил в статью линк на рабочий исходник SEO Smart Links, который работает здесь.

    https://azzrael.ru/pics/seo-links.zip

    Но кстати на будухуде я попробовал другой плагин SEO ALRP http://wordpress.org/extend/plugins/seo-alrp/ он во многом лучше чем SEO Smart Links. Он сразу рабочий с UTF, лучше SEO оптимизирован, но правда у меня он не заработал :D :D и возиться было лень. Посмотрите может вам подойдет.

  6. POC 13 июня, 2011

    SEO ALRP — Не работает с русскими словами.

  7. Azzrael 13 июня, 2011

    Да с этим я уже столкнулся. Разбираться было лень, вернулся к SEO Smart Links

  8. Андрей 5 августа, 2011

    Странно, но у меня не работает. Скачал ваш файл, залил, активировал, в поле “Custom Keywords” указал слова, которые есть на сайте и стр. для теста – ссылок не появилось.

  9. Azzrael 5 августа, 2011

    возможно что-то с кодировками. ваш блог работает с utf-8 ? мой файлик, если вдруг вы его правили, вы сохранили в utf-8 ? ссылки латиницей работают ?

  10. Юля 11 сентября, 2011

    Здравствуйте, а сегодня обновление автор выпустил и первой строчки в коде нету, не могли бы вы посодействовать в новом варианте? :)
    Спасибо огромное за решение, 150 долл за про версию – не знаю, как-то огого.

  11. Azzrael 14 сентября, 2011

    Если в новой версии не появилось ничего принципиально нового, то, возможно, и не стоит этот плагин обновлять. Пользуйтесь старой версией SEO Smart Links.

  12. Юрий 26 ноября, 2012

    Вот так работает с utf и не обрезает пробелы вокруг ссылки:

    $reg = $options[‘casesens’] ? ‘/(?!\pL)($name)(?!\pL)(?!(?:(?!).)*)(?![^]*>)/mUu’ : ‘/(?<!\pL)($name)(?!\pL)(?!(?:(?!).)*)(?![^]*>)/iumU';

    Взято из старого платного плагина.

  13. Максим 11 января, 2013

    Спасибо за статью!

    Стало работать с кириллицей, но есть более удобное решение, которое подойдет для сайтов старых и больших, где можно вручную каждую ссылку проставить контекстно, с учетом падежей. Lmpanel скрипт называется, не сочтите за рекламу, сделан точь-в-точь как покупка контекстных ссылок в Sape – кто знает, очень удобно!

    Единственное что – код закрыт, за открытый надо доплатить.

  14. Максим 11 января, 2013

    И еще забыл добавить что скрипт по-любому надо дописывать, потому как он работает со своей базой а не с базой WordPress (то есть ссылки проставляются на этапе вывода материала на страницу – кэш не работает). В общем как идея, хочу его доработать, знакомый на Drupal сделал для сайта на 20к статей и работает отлично.

Есть что сказать по теме статьи? Пожалуйста - пишите!