我有一个自定义模块,该模块在Prestashop中定义了一个自定义页面。 它由扩展page.tpl的模板和前端控制器组成。
我想了解应该在哪里修改此特定页面的元数据。
我在此控制器中看到了调用模板的那部分:
$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');
这是添加meta的正确位置吗?该如何完成?
答案 0 :(得分:0)
在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的另一种选择:How to change meta title in prestashop module?
答案 1 :(得分:0)
在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;
}
如果它是 static 页面(如列表或单色页面),则可以添加控制器并直接在Back Office(SEO菜单)中设置元信息。
祝你好运