类别页面meta_title
,meta_key
和meta_description
标签来自表ps_category_lang
。
mysql> select * from ps_category_lang limit 1;
+-------------+---------+---------+-------+-------------+--------------+------------+---------------+------------------+
| id_category | id_shop | id_lang | name | description | link_rewrite | meta_title | meta_keywords | meta_description |
+-------------+---------+---------+-------+-------------+--------------+------------+---------------+------------------+
| 1 | 1 | 1 | Raíz | | raiz | | | |
+-------------+---------+---------+-------+-------------+--------------+------------+---------------+------------------+
1 row in set (0.00 sec)
是否可以在这三个值上添加前缀(或后缀),以便它使用数据库中的信息,但会在特定值后附加或添加前缀?
如果是,那么需要做什么?我已经有一个自定义模块,该模块使用扩展的模板和控制器来覆盖类别页面。
Prestashop 1.7.1
答案 0 :(得分:1)
最好的方法是重写/classes/controller/FrontController.php
,特别是代码中的方法getTemplateVarPage()
:
$page = array(
'title' => '',
'canonical' => $this->getCanonicalURL(),
'meta' => array(
'title' => $meta_tags['meta_title'],
'description' => $meta_tags['meta_description'],
'keywords' => $meta_tags['meta_keywords'],
'robots' => 'index',
),
'page_name' => $page_name,
'body_classes' => $body_classes,
'admin_notifications' => array(),
);
您可以在此处验证当前页面,并根据需要对其进行更改。
答案 1 :(得分:1)
对于PrestaShop中的每个标准控制器,您在Meta
类中有一个专用功能,在您的情况下,您可以重写getCategoryMetas()
函数以适应您的需求。
您还可以使用the previous answer重写在Meta::getCategoryMetas()
函数中的CategoryController::getTemplateVarPage()
中首先计算的元。
祝你好运