4.875 1 1 1 1 1 1 1 1 1 1 Rating 4.88 (4 Votes)

Попытка разработчиков в Джумле 3 решить проблему с атрибутом rel="canonical" окончилась фиаско.

Поэтому, сделаем возможность прописать rel="canonical" для каждого материала.

 

В джумле существует куча полей которые я никогда не прописываю, но которые могут выводить информацию в мета тегах, это:

<meta name="rights" content="авторские права" />
<meta name="author" content="автор" />
<meta name="xreference" content="внешняя ссылка" />
<meta name="keywords" content="ключи">

Я решил использовать одно из ненужных полей для вывода ссылки на каноническую страницу:

<link rel="canonical" href="/" />

Мой выбор пал на мета-тег keywords, потому что он есть во всех внешних компонентах (особено меня интересова JoomGallery).

Итак, для того что бы сделать настраиваемый и управляемый рел каноникал нужно открыть файл head.php, находящийся по адресу:

/libraries/joomla/document/html/renderer

Найти вот такой код:

// Generate META tags (needs to happen as early as possible in the head)
		foreach ($document->_metaTags as $type => $tag)
		{
			foreach ($tag as $name => $content)
			{
				if ($type == 'http-equiv' && !($document->isHtml5() && $name == 'content-type'))
				{
					$buffer .= $tab . '<meta http-equiv="' . $name . '" content="' . htmlspecialchars($content) . '" />' . $lnEnd;
				}
				elseif ($type == 'standard' && !empty($content))
				{
					$buffer .= $tab . '<meta name="' . $name . '" content="' . htmlspecialchars($content) . '" />' . $lnEnd;
				}
			}
		}




И заменить на этот:

// Generate META tags (needs to happen as early as possible in the head)
		foreach ($document->_metaTags as $type => $tag)
		{
			foreach ($tag as $name => $content)
			{
				if ($type == 'http-equiv' && !($document->isHtml5() && $name == 'content-type'))
				{
					$buffer .= $tab . '<meta http-equiv="' . $name . '" content="' . htmlspecialchars($content) . '" />' . $lnEnd;
				}
				elseif ($type == 'standard' && !empty($content))
				{
//canonical
                if ($content) {
                if ($name=='keywords') {
                $buffer .= $tab . '<link rel="canonical" href="' . htmlspecialchars($content) . '" />' . $lnEnd; 
                continue;
                }
					$buffer .= $tab . '<meta name="' . $name . '" content="' . htmlspecialchars($content) . '" />' . $lnEnd;
					}
				}
			}
		}




Теперь, если нужен любой рел-каноникал, мне достаточно прописать его в поле «Мета-тег Keywords».

P.S. Метод так же работает в Joomla 2.5

P. P.S. При обновлении Джумлы файл head.php, обновиться. Поэтому сделайте дубль и после замените его.

Сказать спасибо лучше кнопками:

Комментарии   

0 #10 Quincy 25.08.2018 15:57
I think that is one of the most important info for me.

And i'm happy reading your article. But want to remark on few normal
issues, The web site taste is wonderful, the articles is
truly great : D. Good task, cheers

Visit my blog post - Поліграфия Киев 1Design Дизайн студия 1Дизайн ®: http://shahyan.com/wiki/index.php/User:ShantaeD77
Цитировать
0 #9 Charis 14.08.2018 20:58
I'm curious to find out what blog platform you're using?

I'm experiencing some small security problems with my latest website and I would like to find something more secure.
Do you have any suggestions?

my homepage: Www.pediascape.org/pamandram/index.php/User:LillieMcEncroe9: http://www.bearingwarehouse.com/__media__/js/netsoltrademark.php?d=www.pediascape.org%2Fpamandram%2Findex.php%2FUser%3ALillieMcEncroe9
Цитировать
0 #8 Angeline 11.08.2018 09:10
These are genuinely enormous ideas in concerning blogging.
You have touched some pleasant things here. Any way keep up wrinting.


My homepage: http://printstickers.pp.ua/tag/naklejki-raspechatki/: http://115.159.160.72/discuz/upload/home.php?mod=space&uid=29717&do=profile&from=space
Цитировать
0 #7 Владимир 04.08.2018 05:44
Если кому-то нужно, в Joomla 3.8.10 этот файл был обнаружен в другом расположении: /libraries/src/Document/Renderer/Html
Цитировать
+1 #6 Сергей 05.08.2017 18:52
А что же будет со страницами, где в поле "keywords" введены именно ключевые слова?
Цитировать
0 #5 Оксана 04.07.2017 06:49
Заменила код как указано в данной статье, ввожу ссылку в поле «Мета-тег Keywords»в пункте меню Joomla: после сохранения «Мета-тег Keywords» остается чистым, ничего не меняется! что делаю ни так? :sad:
Цитировать
+1 #4 Платон 15.03.2017 06:58
Вопрос не решен! :lol: ..Как категорично.
Бля, чел поделился отличной идеей. А самому поискать где этот файл находиться в новой джумле, что религия не позволяет?
Цитировать
-1 #3 Игорь 14.03.2017 18:37
В папке head.php ничего подобного больше нет, Joomla 3.6.5.!!! вопрос не решен!
Цитировать
0 #2 Сергей 07.03.2017 11:40
В папке head.php ничего подобного больше нет, Joomla 3.6.5.
Цитировать
0 #1 Аркадий Андреевич AAndreevich 23.07.2016 12:40
Спасибо! Избавил думать :D
Цитировать

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


Защитный код
Обновить

Feedburner
Поиск
Новые материалы
Последнии Комментарии