В этом кейсе я расскажу, как добавить к внешним ссылкам меню Joomla "nofollow" без использования дополнительных расширений и хаков ядра.

В Joomla существует удивительное упущение. В настройках пункта меню нет опции, позволяющей закрыть внешнюю ссылку от индексации при помощи атрибута rel=”nofollow”. В этом кейсе я расскажу, как можно исправить эту проблему без использования дополнительных расширений и хаков ядра.

Часто бывает так, что меню Joomla содержит пункты типа «Внешняя ссылка». Это может быть ссылка на скачивание или партнерская ссылка, либо какая-то еще. Иногда таких ссылок на сайте может быть много. Чтобы не терять ссылочный вес, а также участвовать в различных системах монетизации сайта, желательно свести количество сквозных внешних ссылок к минимуму, либо закрыть их от индексации через nofollow. Стандартной опции, позволяющей это сделать, в настройках Joomla нет. Есть опция «Мета-тег Robots», но она дает совсем не такой результат, который нужен.

На самом деле, эта проблема встала передо мной уже довольно давно. Но лишь недавно я наткнулся на изящное решение, которое не потребует затрагивать ядро или устанавливать плагин. Вот оно:

1. Копируем файл default_url.php из modules/mod_menu/tmpl/ в templates/ВАШ_ШАБЛОН/html/mod_menu/

2. В скопированном файле находим строчку:

defined('_JEXEC') or die;

и вставляем после нее:

$linkhost = JURI::getInstance( $item->flink )->getHost(); //хост вашей ссылки
$basehost = JURI::getInstance( JURI::base() )->getHost(); //хост вашего сайта
/*сравниваем:*/
if ($linkhost !== $basehost) {
            $rel = 'rel="nofollow"';
}

3. Ниже в этом же файле находим вывод ссылок (сразу за case 0, case 1, case 2) и вставляем в них переменную $rel.

Было:

<a <?php echo $class; ?>href="<?php echo $flink; ?>" <?php echo $title; ?> ><?php echo $linktype; ?></a>

Стало:

<a <?php echo $class; ?>href="<?php echo $flink; ?>" <?php echo $title; ?> <?php echo $rel; ?>><?php echo $linktype; ?></a>

Делаем по аналогии для всех трех ссылок.

Вот и всё. Теперь все внешние ссылки, являющиеся пунктами меню Joomla, будут иметь атрибут rel=”nofollow”.

Понравилась статья? Сохраните себе на стену:

Ваша оценка материала очень важна для нас. Просим вас оценить статью или оставить отзыв в комментариях.

Комментарии  

0 # RE: Как добавить nofollow для внешних ссылок в меню Joomla (Кейс #3).Дмитрий 03.05.2017 14:01
А на модуль случайного изображения применимо?
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как добавить nofollow для внешних ссылок в меню Joomla (Кейс #3).Wedal 04.05.2017 06:15
Дмитрий, в модулях все еще проще. Нужно переопределить макет вывода модуля в ваш шаблон Joomla и отредактировать его, добавив nofollow для ссылки.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как добавить nofollow для внешних ссылок в меню Joomla (Кейс #3).zamotin 31.12.2014 11:54
у вас нет материала по удалению скрытых ссылок? А то много перекопал, многое попробовал, а найти в шаблоне их не смог.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как добавить nofollow для внешних ссылок в меню Joomla (Кейс #3).Wedal 13.01.2015 15:13
zamotin, такого материала нет и быть не может. Это аналитическая работа. В каждом случае алгоритм отличается.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как добавить nofollow для внешних ссылок в меню Joomla (Кейс #3).zamotin 31.12.2014 11:50
большое спасибо! Помогло
Ответить | Ответить с цитатой | Цитировать
-1 # RE: Как добавить nofollow для внешних ссылок в меню Joomla (Кейс #3).Rin 13.01.2014 13:35
Цитирую Wedal:
pro100kalina, видимо да :-) . В "Стало" добавился вывод переменной:
Код:<?php echo $rel; ?>

Код указанный в цитируемом сообщении отфильтровался в моем предыдущем сообщении, в общем разберетесь).
Ответить | Ответить с цитатой | Цитировать
-1 # RE: Как добавить nofollow для внешних ссылок в меню Joomla (Кейс #3).pro100kalina 23.12.2013 20:04
Я один не вижу разници между "было" и "стало"?
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как добавить nofollow для внешних ссылок в меню Joomla (Кейс #3).Wedal 24.12.2013 03:18
pro100kalina, видимо да :-) . В "Стало" добавился вывод переменной:
Код:<?php echo $rel; ?>
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Вверх