Grâce à ce tuto, vous allez pouvoir supprimer le nom de votre boutique de la balise Meta Title de vos pages sur votre site e-commerce
Astuce Prestashop 1.6
———————————-
Dans un premier temps, nous allons overrider le fichier Meta.php. En effet ces dans ce fichier que nous allons supprimer le paramètre Configuration::get(‘PS_SHOP_NAME’) qui fait référence au nom de votre boutique
Pour cela, allez dans override/classes et crééz le fichier Meta.php
Dans ce fichier insérer le code suivant :
1 2 3 4 5 6 |
<?php class Meta extends MetaCore { // Nous mettrons les functions overrider ici } |
A) Supprimer le nom de la boutique de la balise Meta Title de la page d’accueil
Insérez le code suivant
1 2 3 4 5 6 7 8 |
public static function getHomeMetas($id_lang, $page_name) { $metas = Meta::getMetaByPage($page_name, $id_lang); $ret['meta_title'] = (isset($metas['title']) && $metas['title']) ? $metas['title'] : Configuration::get('PS_SHOP_NAME'); $ret['meta_description'] = (isset($metas['description']) && $metas['description']) ? $metas['description'] : ''; $ret['meta_keywords'] = (isset($metas['keywords']) && $metas['keywords']) ? $metas['keywords'] : ''; return $ret; } |
B) Supprimer le nom de la boutique de la balise Meta Title des pages catégories
Insérez le code suivant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
public static function getCategoryMetas($id_category, $id_lang, $page_name, $title = '') { if (!empty($title)) { $title = ' - '.$title; } $page_number = (int)Tools::getValue('p'); $sql = 'SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description` FROM `'._DB_PREFIX_.'category_lang` cl WHERE cl.`id_lang` = '.(int)$id_lang.' AND cl.`id_category` = '.(int)$id_category.Shop::addSqlRestrictionOnLang('cl'); $cache_id = 'Meta::getCategoryMetas'.(int)$id_category.'-'.(int)$id_lang; if (!Cache::isStored($cache_id)) { if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { if (empty($row['meta_description'])) { $row['meta_description'] = strip_tags($row['description']); } // Paginate title if (!empty($row['meta_title'])) { $row['meta_title'] = $title.$row['meta_title'].(!empty($page_number) ? ' ('.$page_number.')' : ''); } else { $row['meta_title'] = $row['name'].(!empty($page_number) ? ' ('.$page_number.')' : ''); } if (!empty($title)) { $row['meta_title'] = $title.(!empty($page_number) ? ' ('.$page_number.')' : ''); } $result = Meta::completeMetaTags($row, $row['name']); } else { $result = Meta::getHomeMetas($id_lang, $page_name); } Cache::store($cache_id, $result); return $result; } return Cache::retrieve($cache_id); } |
Si vous actualisez la page, vous verrez que rien à changer. Il faut faire aussi la modification dans un autre fichier.
Pour cela on va ouvrir un autre fichier : blocklayered.php qui se situe dans le module blocklayered
Puis vers la ligne 713 on va remplacer ce code
1 2 3 4 |
if (!empty($title)) $smarty->assign('meta_title', $title.' - '.Configuration::get('PS_SHOP_NAME')); else $smarty->assign('meta_title', $category_metas['meta_title']); |
par
1 2 3 4 |
if (!empty($title)) $smarty->assign('meta_title', $title); else $smarty->assign('meta_title', $category_metas['meta_title']); |
C) Supprimer le nom de la boutique de la balise Meta Title des pages fournisseurs
Insérez le code suivant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public static function getManufacturerMetas($id_manufacturer, $id_lang, $page_name) { $page_number = (int)Tools::getValue('p'); $sql = 'SELECT `name`, `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'manufacturer_lang` ml LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (ml.`id_manufacturer` = m.`id_manufacturer`) WHERE ml.id_lang = '.(int)$id_lang.' AND ml.id_manufacturer = '.(int)$id_manufacturer; if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { if (!empty($row['meta_description'])) { $row['meta_description'] = strip_tags($row['meta_description']); } $row['meta_title'] = ($row['meta_title'] ? $row['meta_title'] : $row['name']).(!empty($page_number) ? ' ('.$page_number.')' : ''); return Meta::completeMetaTags($row, $row['meta_title']); } return Meta::getHomeMetas($id_lang, $page_name); } |
D) Supprimer le nom de la boutique de la balise Meta Title des pages fabricants
Insérez le code suivant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public static function getSupplierMetas($id_supplier, $id_lang, $page_name) { $sql = 'SELECT `name`, `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'supplier_lang` sl LEFT JOIN `'._DB_PREFIX_.'supplier` s ON (sl.`id_supplier` = s.`id_supplier`) WHERE sl.id_lang = '.(int)$id_lang.' AND sl.id_supplier = '.(int)$id_supplier; if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { if (!empty($row['meta_description'])) { $row['meta_description'] = strip_tags($row['meta_description']); } if (!empty($row['meta_title'])) { $row['meta_title'] = $row['meta_title']; } return Meta::completeMetaTags($row, $row['name']); } return Meta::getHomeMetas($id_lang, $page_name); } |
E) Supprimer le nom de la boutique de la balise Meta Title des pages CMS
Insérez le code suivant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public static function getCmsMetas($id_cms, $id_lang, $page_name) { $sql = 'SELECT `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'cms_lang` WHERE id_lang = '.(int)$id_lang.' AND id_cms = '.(int)$id_cms. ((int)Context::getContext()->shop->id ? ' AND id_shop = '.(int)Context::getContext()->shop->id : ''); if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { $row['meta_title'] = $row['meta_title']; return Meta::completeMetaTags($row, $row['meta_title']); } return Meta::getHomeMetas($id_lang, $page_name); } |
F) Supprimer le nom de la boutique de la balise Meta Title des pages catégories CMS
Insérez le code suivant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public static function getCmsCategoryMetas($id_cms_category, $id_lang, $page_name) { $sql = 'SELECT `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'cms_category_lang` WHERE id_lang = '.(int)$id_lang.' AND id_cms_category = '.(int)$id_cms_category. ((int)Context::getContext()->shop->id ? ' AND id_shop = '.(int)Context::getContext()->shop->id : ''); if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { $row['meta_title'] = $row['meta_title']; return Meta::completeMetaTags($row, $row['meta_title']); } return Meta::getHomeMetas($id_lang, $page_name); } |
G) Et enfin supprimer le nom de la boutique de la balise Meta Title de toutes les autres pages
Insérez le code suivant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public static function completeMetaTags($meta_tags, $default_value, Context $context = null) { if (!$context) { $context = Context::getContext(); } if (empty($meta_tags['meta_title'])) { $meta_tags['meta_title'] = $default_value; } if (empty($meta_tags['meta_description'])) { $meta_tags['meta_description'] = Configuration::get('PS_META_DESCRIPTION', $context->language->id) ? Configuration::get('PS_META_DESCRIPTION', $context->language->id) : ''; } if (empty($meta_tags['meta_keywords'])) { $meta_tags['meta_keywords'] = Configuration::get('PS_META_KEYWORDS', $context->language->id) ? Configuration::get('PS_META_KEYWORDS', $context->language->id) : ''; } return $meta_tags; } |
Après avoir suivi ce tuto, vous ne verrez plus ces fameuses balise Title sur votre boutique Prestashop
Cette astuce fonctionne très bien, merci!