Столкнулся с тем, что Google ругается на повторяющиеся мета-теги (title и description) для страницы подробного описания товара и страницы с его обсуждением (отзывами).
Видел, что в страницах с новостями эту проблему устраняли, а вот для product_discussion что-то было?
1
Мета-теги для страниц с обсуждением товаров
Автор Den, Oct 16 2015 01:35 PM
Сообщений в теме: 4
#1
Отправлено 16 October 2015 - 01:35 PM
#2
Отправлено 16 October 2015 - 04:30 PM
Я такого решения не припоминаю. Но вообще оно легко должно делаться. На уровне шаблона.
Что-то типа "если текущий шаблон это дискуссия, то добавим к title строку "(обсуждение)""
Что-то типа "если текущий шаблон это дискуссия, то добавим к title строку "(обсуждение)""
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#3
Отправлено 19 October 2015 - 04:12 PM
badisoft, спасибо за наводку.
С title разобрался, в head.tpl.html, там где
Оборачиваем {$page_title} условием:
А вот с description и keywords сложнее. В head.tpl.html они выводятся через одну переменную $page_meta_tags, соответственно такой финт как с title не проходит.
С title разобрался, в head.tpl.html, там где
<title>{$page_title}</title>
Оборачиваем {$page_title} условием:
<title>{if $main_content_template == "product_discussion.tpl.html"}Отзывы о {$page_title}{else}{$page_title}{/if}</title>
А вот с description и keywords сложнее. В head.tpl.html они выводятся через одну переменную $page_meta_tags, соответственно такой финт как с title не проходит.
#4
Отправлено 19 October 2015 - 07:47 PM
Да ладно. То же самое (по сути), только в head.php.А вот с description и keywords сложнее.
if ( isset($_GET["discuss"]) ) и так далее.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#5
Отправлено 21 October 2015 - 06:31 PM
Да ладно. То же самое (по сути), только в head.php. if ( isset($_GET["discuss"]) ) и так далее.А вот с description и keywords сложнее.
Опять же спасибо за наводку! Долго думал, но кое до чего догадался. Вроде бы работает такой вариант:
1. В product_functions.php, чуть изменив имеющуюся функцию prdGetMetaTags, добавил новую функцию discGetMetaTags, отвечающую за формирование переменной $page_meta_tags для страницы с обсуждениями товаров:
function discGetMetaTags( $productID ) //gets META keywords and description - an HTML code to insert into <head> section { $q = db_query( "select meta_description, meta_keywords from ". PRODUCTS_TABLE." where productID=".(int)$productID ); $row = db_fetch_row($q); $meta_description = $row["meta_description"]; $meta_keywords = $row["meta_keywords"]; $res = ""; if ( $meta_description != "" ) $res .= "<meta name=\"Description\" content=\"".META_DESC_DISC."".$meta_description."\">\n"; if ( $meta_keywords != "" ) $res .= "<meta name=\"KeyWords\" content=\"".$meta_keywords."".META_KEYW_DISC."\" >\n"; return $res; }
2. В russian.php добавил описания для META_DESC_DISC и META_KEYW_DISC (некий текст, добавляемый к мета-тегам товара для страницы с его обсуждением (можно использовать любой)).
define('META_DESC_DISC', 'Отзывы о '); define('META_KEYW_DISC', ' отзывы');Этот текст используется в указанной выше функции discGetMetaTags
3. В head.php перед строкой
elseif (isset($_GET["fullnews"])) // fullnews => get title
добавил формирование мета-тегов для страницы обсуждений, по аналогии с формированием мета-тегов для страницы описания товара, всего лишь заменив используемую функцию с prdGetMetaTags на ранее добавленную discGetMetaTags:
elseif (isset($_GET["discuss"])) // discuss => get title { $q = db_query("select name, title FROM ".PRODUCTS_TABLE." WHERE productID=".(int)$productID); $r = db_fetch_row($q); if($r[1]) $page_title = $r[1]; elseif($r[0]) $page_title = $r[0]; else $page_title = CONF_SHOP_NAME.": ".CONF_DEFAULT_TITLE; $meta_tags = discGetMetaTags($productID); }
Не знаю насколько это все правильно, но работает!