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 #8 Tabatha 10.02.2018 02:24
What Where Can I Find Someone to Write My
College Paper: http://assignmenthelp24.com/where-can-i-find-someone-to-write-my-college-paper/ don't understood is actually how you are now not really a lot
more smartly-favored than you might be now. You are so intelligent.
You know therefore significantly on the subject of this matter,
produced me in my view imagine it from numerous numerous angles.
Its like men and women aren't interested except it's one thing to do with Girl gaga!
Your individual stuffs great. All the time care for it up!
Цитировать
0 #7 Archie 05.01.2018 10:52
Pretty section of content. I just stumbled upon your site and in accession capital
to assert that I acquire in fact enjoyed account your blog posts.
Any way I'll be subscribing to your augment and even I achievement you
access consistently fast.

Here is my blog :: specadieta.com: http://specadieta.com/
Цитировать
+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: ..Как категорично.
Бля, чел поделился отличной идеей. А самому поискать где этот файл находиться в новой джумле, что религия не позволяет?
Цитировать
-2 #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
Поиск
Новые материалы
Последнии Комментарии