Jump to content

SEO - шаблоны для автоматической генерации META


Recommended Posts

Увидел несколько реализаций и даже платных модулей, откровенно говоря на мой взгляд они крайне избыточны а местами даже экзотические. решил поделиться простым решением для создания шаблонов meta-тегов а так же описания для категорий и товаров.

 

пример

 

открываем products.tpl, в шапке добавляем.

 

{if $features && ($meta_title || $meta_keywords || $meta_description)}
    {foreach $features as $key=>$f}
        {foreach $f->options as $o}
            {if $smarty.get.{$f->id} && $smarty.get.{$f->id} == $o->value}
                {$filter_title[] = "{$f->name|escape|lower}: {$o->value|escape|lower}"}
                {$filter_keywords[] = $o->value|escape|lower}
            {/if}
        {/foreach}
    {/foreach}
    {if $filter_title}
        {eval var="{"; "|implode:$filter_title}" assign=filter_title}
        {eval var="{", "|implode:$filter_keywords}" assign=filter_keywords}
    {/if}
{/if}

{if $meta_title}
    {eval var=$meta_title assign=new_meta_title}
    {$meta_title=$new_meta_title scope=parent}
{/if}
{if $meta_keywords}
    {eval var=$meta_keywords assign=new_meta_keywords}
    {$meta_keywords=$new_meta_keywords scope=parent}
{/if}
{if $meta_description}
    {eval var=$meta_description assign=new_meta_description}
    {$meta_description=$new_meta_description scope=parent}
{/if}

далее идем в редактор категории

 

Шаблон заголовка

{$category->name|escape}{if $brand} {$brand->name|escape}{/if}{if $filter_title}, {$filter_title}{/if} - купить в интернет-магазине {$settings->site_name|escape}

Шаблон ключевых слов

{$category->name|escape|lower}{if $brand}, {$brand->name|escape|lower}{/if}{if $filter_keywords}, {$filter_keywords}{/if}

Шаблон описания

Купить {$category->name|escape|lower}{if $brand} {$brand->name|escape}{/if}{if $filter_title} с характеристиками - {$filter_title}{/if} в интернет-магазине {$settings->site_name|escape}. Низкие цены, доставка, самовывоз

 

Готово! На выходе получаем страницы с уникальными мета-тегами.

Edited by DaVinci
Link to post
Share on other sites

А для чего нужна эта куча eval ? 
 
Почему нельзя просто:

{$filter_title = [1,2,3]}
{$filter_title=", "|implode:$filter_title}
{$filter_title|var_dump}

и

{$meta_title=$category->meta_title scope=parent}
Edited by yr4ik
Link to post
Share on other sites

У меня почему-то описание не подстраивается под фильтры товара как на видео. Точнее ничего не подстраивается, ни тайтл, ни описание, ни ключевики.

Edited by Julius123
Link to post
Share on other sites
  • 3 weeks later...

1. Правильно понял, для meta товара нужно добавить ещё и в product.tpl ?

2. А как сделать, чтоб в шаблоны добавлялось по умолчанию?

Link to post
Share on other sites
  • 1 year later...

Увидел несколько реализаций и даже платных модулей, откровенно говоря на мой взгляд они крайне избыточны а местами даже экзотические. решил поделиться простым решением для создания шаблонов meta-тегов а так же описания для категорий и товаров.

 

пример

 

открываем products.tpl, в шапке добавляем.

 

{if $features && ($meta_title || $meta_keywords || $meta_description)}
    {foreach $features as $key=>$f}
        {foreach $f->options as $o}
            {if $smarty.get.{$f->id} && $smarty.get.{$f->id} == $o->value}
                {$filter_title[] = "{$f->name|escape|lower}: {$o->value|escape|lower}"}
                {$filter_keywords[] = $o->value|escape|lower}
            {/if}
        {/foreach}
    {/foreach}
    {if $filter_title}
        {eval var="{"; "|implode:$filter_title}" assign=filter_title}
        {eval var="{", "|implode:$filter_keywords}" assign=filter_keywords}
    {/if}
{/if}

{if $meta_title}
    {eval var=$meta_title assign=new_meta_title}
    {$meta_title=$new_meta_title scope=parent}
{/if}
{if $meta_keywords}
    {eval var=$meta_keywords assign=new_meta_keywords}
    {$meta_keywords=$new_meta_keywords scope=parent}
{/if}
{if $meta_description}
    {eval var=$meta_description assign=new_meta_description}
    {$meta_description=$new_meta_description scope=parent}
{/if}

далее идем в редактор категории

 

Шаблон заголовка

{$category->name|escape}{if $brand} {$brand->name|escape}{/if}{if $filter_title}, {$filter_title}{/if} - купить в интернет-магазине {$settings->site_name|escape}

Шаблон ключевых слов

{$category->name|escape|lower}{if $brand}, {$brand->name|escape|lower}{/if}{if $filter_keywords}, {$filter_keywords}{/if}

Шаблон описания

Купить {$category->name|escape|lower}{if $brand} {$brand->name|escape}{/if}{if $filter_title} с характеристиками - {$filter_title}{/if} в интернет-магазине {$settings->site_name|escape}. Низкие цены, доставка, самовывоз

 

Готово! На выходе получаем страницы с уникальными мета-тегами.

 

 

Как прописать сразу в коде "в редактор категории", чтоб каждую категорию не открывать а оно там уже было?

 

Link to post
Share on other sites

Выше всё расписано, вам что не видно?

Там расписано и видео показано, мне интересно как вписать последние три макроса сразу в код сайта, чтоб в каждую категорию не заходить. Если у меня их 5000 это на долго такая автоматизация.

Link to post
Share on other sites

Там расписано и видео показано, мне интересно как вписать последние три макроса сразу в код сайта, чтоб в каждую категорию не заходить. Если у меня их 5000 это на долго такая автоматизация.

 

руками

Link to post
Share on other sites
  • 2 weeks later...

Нашёл переменную для использования в шаблоне SEO - {$product->name|escape}
Отображает название товара.

А кто знает каким образом вывести в шаблон SEO переменную ЦЕНЫ и СВОЙСТВА ТОВАРА (одного из существующих)
По умолчанию не нашёл.
Кто знает как её подключить?

Link to post
Share on other sites

Нашёл переменную для использования в шаблоне SEO - {$product->name|escape}

Отображает название товара.

 

А кто знает каким образом вывести в шаблон SEO переменную ЦЕНЫ и СВОЙСТВА ТОВАРА (одного из существующих)

По умолчанию не нашёл.

Кто знает как её подключить?

 

если посмотреть на все переменные которые попадают в макет товара то может все прояснится - print_r()

Link to post
Share on other sites

если посмотреть на все переменные которые попадают в макет товара то может все прояснится - print_r()

а в какой файл надо прописывать чтобы макет товара просмотреть?

и как потом вывести результат?

Link to post
Share on other sites

а в какой файл надо прописывать чтобы макет товара просмотреть?

и как потом вывести результат?

 

макет товара можете просмотреть через встроенный редактор шаблонов

результат можете смотреть в браузере 

Edited by DaVinci
Link to post
Share on other sites

макет товара можете просмотреть через встроенный редактор шаблонов

результат можете смотреть в браузере 

да это я знаю)

просто не пойму куда именно в какой файл и в какое место вставлять print_r() чтоб потом в браузере посмотреть и по какому адресу

пока только осваиваю это дело

Link to post
Share on other sites

да это я знаю)

просто не пойму куда именно в какой файл и в какое место вставлять print_r() чтоб потом в браузере посмотреть и по какому адресу

пока только осваиваю это дело

 

https://ru.hexlet.io/courses/introduction_to_programming/lessons/intro/theory_unit

Link to post
Share on other sites
  • 10 months later...

Увидел несколько реализаций и даже платных модулей, откровенно говоря на мой взгляд они крайне избыточны а местами даже экзотические. решил поделиться простым решением для создания шаблонов meta-тегов а так же описания для категорий и товаров.

 

пример

 

открываем products.tpl, в шапке добавляем.

 

{if $features && ($meta_title || $meta_keywords || $meta_description)}
    {foreach $features as $key=>$f}
        {foreach $f->options as $o}
            {if $smarty.get.{$f->id} && $smarty.get.{$f->id} == $o->value}
                {$filter_title[] = "{$f->name|escape|lower}: {$o->value|escape|lower}"}
                {$filter_keywords[] = $o->value|escape|lower}
            {/if}
        {/foreach}
    {/foreach}
    {if $filter_title}
        {eval var="{"; "|implode:$filter_title}" assign=filter_title}
        {eval var="{", "|implode:$filter_keywords}" assign=filter_keywords}
    {/if}
{/if}

{if $meta_title}
    {eval var=$meta_title assign=new_meta_title}
    {$meta_title=$new_meta_title scope=parent}
{/if}
{if $meta_keywords}
    {eval var=$meta_keywords assign=new_meta_keywords}
    {$meta_keywords=$new_meta_keywords scope=parent}
{/if}
{if $meta_description}
    {eval var=$meta_description assign=new_meta_description}
    {$meta_description=$new_meta_description scope=parent}
{/if}

далее идем в редактор категории

 

Шаблон заголовка

{$category->name|escape}{if $brand} {$brand->name|escape}{/if}{if $filter_title}, {$filter_title}{/if} - купить в интернет-магазине {$settings->site_name|escape}

Шаблон ключевых слов

{$category->name|escape|lower}{if $brand}, {$brand->name|escape|lower}{/if}{if $filter_keywords}, {$filter_keywords}{/if}

Шаблон описания

Купить {$category->name|escape|lower}{if $brand} {$brand->name|escape}{/if}{if $filter_title} с характеристиками - {$filter_title}{/if} в интернет-магазине {$settings->site_name|escape}. Низкие цены, доставка, самовывоз

 

Готово! На выходе получаем страницы с уникальными мета-тегами.

 

Напишите пожалуйста подробную инструкцию по установке, к примеру файл такой, строка такая, вставить,или заменить.

Спасибо большое!

Link to post
Share on other sites

Напишите пожалуйста подробную инструкцию по установке, к примеру файл такой, строка такая, вставить,или заменить.

Спасибо большое!

 

Так уже указано, что и куда. 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...