Требуется оформить существующий код в плагин для Wordpress
Привет
нужно оформить код в плагин для вордпреса и немного дописать функционал
Прошу задать свои вопросы в комментариях, а так же оценить по времени и срокам
техническое задание на разработку плагина:
============================================
1. при установке плагин добавляет пункт меню в Настройки -> SEO Перелинковка
2. среда настройки параметров
хранение настроек плагина (не создавать доп таблицы, понять как хранятся настройки в базе
[V] маскировать внешние ссылки
за исключением – МЕМО поле в котором каждый фильтр с новой строки
[V] маскировать внутренние ссылки в которых в URL содержится
МЕМО – поле (каждое с новой строки)
[V] маскировать внутренние ссылки, которые содержат следующие классы (class=..)
[V] маскировать ссылки с rel=nofollow (во всех вариантах)
rel='nofollow', rel=«nofollow», rel=nofollow
[V] маскировать ссылки, которые находятся внутри блока
или
технология реализации:
===========================
это просто сделать через фильтры add_filter
который позволит обработать выдачу html до того как она будет отправлена юзеру
оптимально реализация через регулярные выражения
сейчас это сделано просто в виде функции для отдельного сайта в файле functions.php
=======================
// ************************************************** *******
// замена внешних ссылок на
// после того как страница отдается, все спаны с этим классом заменяются обратно на ссылки
// но уже не будут видны поисковикам
// страница на которой тренировался
// view-source:lifeha.ru/youtube/skolko-...
// ************************************************** *******
function remove_extenal_links($content) {
// находим все ссылки которые не ведут на текущих домен
// !!! + TODO
// скрываем все ссылки на сокращатель lifeha.ru/go/.. – нужно разобраться с регуляркой
// неработающий пример: |lifeha.ru/go/.*?
// проблема если в тексте ссылки тег
// СМ строка 300: view-source:lifeha.ru/youtube/skolko-...
$host = strtr($_SERVER['HTTP_HOST'], array('.' => '.'));
// TODO
// Известные проблемы:
// !!! не заменяет ссылку если href в одинарных кавычках
// пример – 192 view-source:lifeha.ru/vkontakte/kak-z...
// !!! не заменяет ссылки внутри плагина видеогалереи (не понял когда он отрабатывает))
// правильное выражение которое лихо заменяет все внешние ссылк
//$pattern = '/]*?)>(.*?|[^a]*?)/i' ;
$pattern = "/]*?)>([sS.]*?)/i";
$replace = "$5" ;
$content = preg_replace($pattern, $replace, $content);
// скрываем все ссылки lifeha.ru/go вторым проходом
$pattern = '/]*?)>([sS.]*?)/i';
$replace = "$6 ";
$content = preg_replace($pattern, $replace, $content);
return $content;
}
// важно поставил приоритет – после того как отработают все с приоритетами 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);