将meta_标签meta_description和meta_name更改为扩展Prestashop 1.7中page.tpl的自定义页面

将meta_标签meta_description和meta_name更改为扩展Prestashop 1.7中page.tpl的自定义页面,prestashop,smarty,prestashop-1.7,Prestashop,Smarty,Prestashop 1.7,我有一个自定义模块,它在Prestashop中定义了一个自定义页面。 它由一个扩展page.tpl的模板和一个前端控制器组成 {extends file='page.tpl'} {block name='head_seo_title'} MY META TITLE {/block} {block name='head_seo_description'} MY META DESCRIPTION {/block} {block name='head_seo_keywords'}

我有一个自定义模块,它在Prestashop中定义了一个自定义页面。 它由一个扩展page.tpl的模板和一个前端控制器组成

{extends file='page.tpl'}

{block name='head_seo_title'}
    MY META TITLE
{/block}

{block name='head_seo_description'}
    MY META DESCRIPTION
{/block}

{block name='head_seo_keywords'}
    MY META KEYWORDS
{/block}
我想了解我应该在哪里修改此特定页面的metas

我在控制器中看到了调用模板的这一部分:

    $this->context->smarty->assign(array(
        'link' =>            $this->context->link,
        'category'             => $this->category,
        'main_category_logo' => $image_url,
        'description_short'    => Tools::truncateString($this->category->description, 350),
        'sub_categories'    => $data,
        'body_classes'         => array($this->php_self.'-'.$this->category->id, $this->php_self.'-'.$this->category->link_rewrite),
        'search_url' => $this->context->link->getPageLink('search', null, null, null, false, null, true)
    ));

    $this->setTemplate('module:'.$this->module->name.'/views/templates/front/category.tpl');

这是添加图元的正确位置吗?如何做到这一点?

在PS 1.7中,在前端控制器的tpl中修改它非常容易

{extends file='page.tpl'}

{block name='head_seo_title'}
    MY META TITLE
{/block}

{block name='head_seo_description'}
    MY META DESCRIPTION
{/block}

{block name='head_seo_keywords'}
    MY META KEYWORDS
{/block}

这里是来自后台SEO和URL的另一个选项:

在PrestaShop 1.7中,您还可以在ModuleFrontController类中创建自己的getTemplateVarPage函数,调用父类,并根据需要设置元变量,以用于博客文章、新闻、商店等项目页面类型。。。,因此,您不必在模板中添加逻辑

public function getTemplateVarPage()
{
    $page = parent::getTemplateVarPage();

    $page['meta']['title'] = 'MY META TITLE';
    $page['meta']['description'] = 'MY META DESCRIPTION';
    $page['meta']['keywords'] = 'MY META KEYWORDS';
    $page['meta']['robots'] = 'index'; // noindex, nofollow, none, ...

    return $page;
}
如果它是一个静态页面,如列表或单页面,您可以添加控制器并直接在后台SEO菜单中设置元信息


祝您好运

您认为通过添加tpl文件,从刻面模块可以实现这一点吗?我正在尝试更改过滤列表的元标题,但我没有找到一种方法,就像我在1.6版本中那样…你认为有没有一种方法可以从分面搜索模块中实现这一点?我已经搜索过了,模块中没有ModuleFrontController…我正在尝试更改筛选列表页面的元标题,但我没有找到一种方法,就像我在1.6版本中那样…