Привет нужно оформить код в плагин для вордпреса и немного дописать функционал
Прошу задать свои вопросы в комментариях, а так же оценить по времени и срокам
техническое задание на разработку плагина: ============================================ 1. при установке плагин добавляет пункт меню в Настройки -> SEO Перелинковка 2. среда настройки параметров
хранение настроек плагина (не создавать доп таблицы, понять как хранятся настройки в базе
[V] маскировать внешние ссылки за исключением – МЕМО поле в котором каждый фильтр с новой строки
[V] маскировать внутренние ссылки в которых в URL содержится МЕМО – поле (каждое с новой строки)
[V] маскировать внутренние ссылки, которые содержат следующие классы (class=..)
[V] маскировать ссылки с rel=nofollow (во всех вариантах) rel='nofollow', rel=«nofollow», rel=nofollow
[V] маскировать ссылки, которые находятся внутри блока <noindex> или <!- noindex ->
[V] обрабатывать ссылки в шорткодах (по сути простой параметр, который определяет когда отработает наш фильтр до того как отработают фильтры шорткодов или после – реализуется при добавлении фильтра функции add_filter (пример фильтров в основной теме проекта lifeha.ru)
способ скрытия ссылок – при помощи span технологии при установке плагина добавляется JS-код в тему <!-- generator seo perelink --> <script type="text/javascript" src="/wp-content/themes/life-haker/js/span.js"></script>
технология реализации: =========================== это просто сделать через фильтры add_filter который позволит обработать выдачу html до того как она будет отправлена юзеру
оптимально реализация через регулярные выражения сейчас это сделано просто в виде функции для отдельного сайта в файле functions.php =======================
// ********************************************************* // замена внешних ссылок на <span class="seolink" rel=href> // после того как страница отдается, все спаны с этим классом заменяются обратно на ссылки // но уже не будут видны поисковикам // страница на которой тренировался // view-source:lifeha.ru/youtube/skolko-... // ********************************************************* function remove_extenal_links($content) {
// находим все ссылки которые не ведут на текущих домен // !!! + TODO // скрываем все ссылки на сокращатель lifeha.ru/go/.. – нужно разобраться с регуляркой // неработающий пример: |lifeha.ru/go/.*? // проблема если в тексте ссылки тег <br/> // СМ строка 300: view-source:lifeha.ru/youtube/skolko-...
// TODO // Известные проблемы: // !!! не заменяет ссылку если href в одинарных кавычках // пример – 192 view-source:lifeha.ru/vkontakte/kak-z... // !!! не заменяет ссылки внутри плагина видеогалереи (не понял когда он отрабатывает))
// правильное выражение которое лихо заменяет все внешние ссылк //$pattern = '/<a(.*?)href=["'](http|https)://(?!'.$host.')([^"']+)["' ]([^>]*?)>(.*?|[^a]*?)</a>/i';
// важно поставил приоритет – после того как отработают все с приоритетами 10(по умолчанию) add_filter ('the_content', 'remove_extenal_links',11); add_filter ('the_excerpt', 'remove_extenal_links',11); add_filter ('get_comment_author_link', 'remove_extenal_links',11);