Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

Прошу прощения за рекламу на сайте. Я постарался сделать это максимально ненавязчиво и по минимуму. При чтении заинтересовавших вас статей она не будет вам мешать.
И если есть возможность поставить мой сайт в исключения у блокировщика рекламы, я буду очень признателен вам.

MODX Revo: Закрываем внешние ссылки тегами

MODX Revo: Закрываем внешние ссылки тегами

 

 

 

Начну из далека.
Этот блог работает на MODX Revo

У меня в блоге много внешних ссылок (ссылаюсь на материалы в сети, а так же есть немного рекламных ссылок), это всё сильно понизило мой ТИЦ.

Решил автоматизировать процесс закрытия внешних ссылок атрибутом nofollow и тэгом noindex, а так же добавлять атрибут _blank.

Что для этого пришлось сделать:

В закладке «Элементы», в разделе «Плагины», создал новый плагин и назвал его noindex.
Тут название не важно, называем как угодно.

В «Код плагина (php):» вставляем следующий код:

<?php
if ($modx->event->name == 'OnWebPagePrerender')
{
    $content = $output = $modx->resource->_output;

    // Собираем все ссылки на странице, по шаблону, в массив $matches
    preg_match_all(
        "/<a [^>]*?href=[\"\'](.*?)[\"\'][^>]*>.*?<\/a>/im",
        $content,
        $matches
    );

    if (!empty($matches[0]))
    {
        foreach ($matches[0] as $key => $tag) {
            // Добавляем атрибут "nofollow" в начало тега "а"
            $new_tag = preg_replace("/^<a/i", '<a rel="nofollow"', $tag);
            // Добавляем атрибут "_blank" в начало тега "а"
            //$new_tag = str_replace('<a','<a target="_blank"',$new_tag);
            // Добавляем тэг "<!--/noindex-->" после тега "а"
            //$new_tag = str_replace('</a>','</a><!--/noindex-->',$new_tag);
            // Добавляем атрибут "<!--noindex-->" перед тегом "а"
            //$new_tag = str_replace('<a','<!--noindex--><a',$new_tag);
            
            $content = str_replace($tag, $new_tag, $content);
        }

        // Устанавливаем новый контент для вывода документа
        $output = $modx->resource->_output = $content;
    }
}

Тут я написал комментарии, должно быть понятно, что и для чего делается.

У плагина, в закладке «Системные события», ставим галочку напротив пункта OnWebPagePrerender

Жмем «Сохранить»

Вот и всё. Теперь наши ссылки приобрели такой вид:

<a href="ТутАдресСайта" rel="nofollow" target="_blank">ТутАдресСайта</a>

 

19 марта 2017, 02:04    Александр CMS 0    491 0

 

 

 

 



Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.