在类别页面中为 meta_title、meta_key、meta_description 添加前缀或附加字符串

Prefix or append a string to meta_title, meta_key, meta_description in category page

分类页面 meta_titlemeta_keymeta_description 标签来自 table 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

最好的方法是覆盖 /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(),
);

在这里您可以验证当前页面并根据需要对其进行更改。

对于 PrestaShop 中的每个标准控制器,您在 Meta class 中都有一个专用函数,在您的情况下,您可以覆盖和调整以适合您的 getCategoryMetas() 函数需要。

您也可以使用 重写 Meta::getCategoryMetas()CategoryController::getTemplateVarPage() 函数中首先计算的元数据。

祝你好运