在类别页面中的meta_title,meta_key,meta_description前缀或附加字符串

时间:2018-08-25 13:42:05

标签: prestashop smarty prestashop-1.7

类别页面meta_titlemeta_keymeta_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

2 个答案:

答案 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()中首先计算的元。

祝你好运