代码之家  ›  专栏  ›  技术社区  ›  M.E.

将meta_标记meta_description和meta_name更改为自定义页,该页扩展页码.tpl在Prestashop 1.7中

  •  0
  • M.E.  · 技术社区  · 6 年前

    我有一个自定义模块,它在Prestashop中定义了一个自定义页面。

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

        $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');
    

    这是添加metas的地方吗?如何做到这一点?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Rolige    6 年前

    在PS1.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选项: How to change meta title in prestashop module?

        2
  •  0
  •   Agnonym    6 年前

    getTemplateVarPage() 在您的 类,调用父级并根据需要设置元变量(对于blog article、news、store等项目页类型很有用),因此不必在模板中放入逻辑。

    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;
    }
    

    如果是 静止的 页面就像一个列表或单声道页面,你可以添加控制器和直接在后台(搜索引擎优化菜单)设置元信息。