[Помогите] Автогенерация title и decription для категорий?

Тема в разделе "OpenCart", создана пользователем biolion, 5 ноя 2013.

  1. biolion

    biolion

    Регистрация:
    27 окт 2013
    Сообщения:
    303
    Симпатии:
    94
    Столкнулся с проблемой, что нет возможности в СеоПак про генерировать тайтл и дескрипшин для категорий. Подскажите, пожалуйста, может есть какое-то решение?
     
  2. Reqman

    Reqman

    Регистрация:
    25 фев 2013
    Сообщения:
    213
    Симпатии:
    62
    Есть такое решение для Title без модулей и лишних заморочек. Сам использую - работает прекрасно.
    Например, Вы придумали шаблон для тайла Купить {имя_товара} в Москве, Санкт-Петербурге по низким ценам. Далее вам необходимо сделать следующее:
    Title для Товара:
    в файле catalog/controller/product/product.php нужно заменить это:
    Код:
    $this->document->setTitle($product_info['name']);
    на это:
    Код:
    $this->document->setTitle('Купить ' . $product_info['name'] . ' в Москве, Санкт-Петербурге по низким ценам');
    Title для Категории:
    в файле catalog/controller/product/category.php
    Аналогично :smile:
     
    biolion нравится это.
  3. biolion

    biolion

    Регистрация:
    27 окт 2013
    Сообщения:
    303
    Симпатии:
    94
    Спасибо, Вам! По этой же аналогии и для дексрипшина?
     
  4. Reqman

    Reqman

    Регистрация:
    25 фев 2013
    Сообщения:
    213
    Симпатии:
    62
    Тег дексрипшин я еще не делал, но думаю что аналогично. Сегодня ночью буду сидеть, завтра отпишусь. Если вы будете пытаться реализовать аналогию к дексрипшин, пожалуйста, отпишитесь в этой ветке.
     
  5. biolion

    biolion

    Регистрация:
    27 окт 2013
    Сообщения:
    303
    Симпатии:
    94
    Разобрался в чем была ошибка:
    1. Бездумно скопировал Ваш текст - надо было product поменять на category

    2. Для СеоПакПро - надо в файле
    custom_title.xml
    Поменять:
    Это:
    Код:
    <file name="catalog/controller/product/category.php">
            <operation>
                <search position="replace"><![CDATA[$this->document->setTitle($category_info['name']);]]></search>
                <add><![CDATA[($category_info['custom_title'] == '')?$this->document->setTitle($category_info['name']):$this->document->setTitle($category_info['custom_title']);]]></add>
            </operation>   
        </file>    
    На это:
    Код:
    <file name="catalog/controller/product/category.php">
            <operation>
                <search position="replace"><![CDATA[$this->document->setTitle($category_info['name']);]]></search>
                <add><![CDATA[$this->document->setTitle('Купить ' .$category_info['name'] . ' в Москве, Санкт-Петербурге по низким ценам');]]></add>
            </operation>   
        </file>    
    И поменять текст на то что нужно


    3. Без СеоПака
    В файле:
    сatalog/controller/product/ - catagory.php
    Поменять:
    Код:
    $this->document->setTitle($category_info['name']);
    На это:
    Код:
    $this->document->setTitle('Купить ' .$category_info['name'] . ' в Москве, Санкт-Петербурге по низким ценам');
    ---------------------------------------------------
    В чем была ошибка:
     
    Последнее редактирование: 5 ноя 2013
  6. Reqman

    Reqman

    Регистрация:
    25 фев 2013
    Сообщения:
    213
    Симпатии:
    62
    Если я верно вас понял, то у вас действительно ошибка :smile:. В файле catagory.php вам необходимо product_info поменять на category_info. Например, откройте файл категори пхп до ваших исправлений.
    Потом это поменять
    Код:
    $this->document->setTitle($category_info['name']);
    на это:
    Код:
    $this->document->setTitle('Купить ' . $category_info['name'] . ' в Москве, Санкт-Петербурге по низким ценам');
    Шаблончик придумайте для категории конечно же другой.
    --- Добавлено, 5 ноя 2013 ---
    Ага... именно это я и пытался Вам рассказать в этом посте :smile:
     
    Последнее редактирование: 5 ноя 2013
    biolion нравится это.
  7. biolion

    biolion

    Регистрация:
    27 окт 2013
    Сообщения:
    303
    Симпатии:
    94
    Это было для тайтла.
    Для мета тега дескрипшин все еще проще. Тут СеоПакПро уже не участвую.
    В этом же файле:
    сatalog/controller/product/ - catagory.php
    Меняем это:
    Код:
    $this->document->setDescription($category_info['meta_description']);
    На это:
    Код:
    $this->document->setDescription('Купить '.$category_info['name'].' тут Ваш текст');
    А как можно добавить к этому тексту переменную ЦЕНА. Как она в опенкарте задается?
    К примеру Купить Ноутбуки в Москве от (тут минимальная цена категории)
     
  8. NinoZombie

    NinoZombie

    Регистрация:
    27 окт 2013
    Сообщения:
    223
    Симпатии:
    59
    Еще интересно - в SeoPackPRO есть возможность для Meta Description подхватывать первое предложения из описания, а для Custom Title это предложение подхватить нельзя. Можно ли как исправить?
     
  9. biolion

    biolion

    Регистрация:
    27 окт 2013
    Сообщения:
    303
    Симпатии:
    94
    Думаю, да, надо посмотреть как как это выводится для дескрипшина в xml файле (в каком точно не знаю), и так же подправить для категории.
     
    Последнее редактирование: 6 ноя 2013
  10. KEH

    KEH

    Регистрация:
    2 июл 2013
    Сообщения:
    204
    Симпатии:
    28
    данное решение очень актуально, но с точки зрения SEO это не очень хорошо. Поисковики не любят много повторений, а при таком раскладе порядка 50% информации всех тайтлов, а может и больше, будут постоянно повторятся. В идеале необходимо добавить поле к категориям и товарам, там где есть дескрипшин и кейвордс.
     
  11. Reqman

    Reqman

    Регистрация:
    25 фев 2013
    Сообщения:
    213
    Симпатии:
    62
    Извините, но не понял.... Тайтлы ведь будут везде разные. Где вы увидели дубли?
     
  12. NinoZombie

    NinoZombie

    Регистрация:
    27 окт 2013
    Сообщения:
    223
    Симпатии:
    59
    Очевидно, имелись в виду не полные дубли тайтлов, а повторение большинства слов в них.
    В таком случае можно написать скрипт, который будет брать тайтл из заранее приготовленного списка шаблонов, чтобы уменьшить повторяемость.
     
  13. KEH

    KEH

    Регистрация:
    2 июл 2013
    Сообщения:
    204
    Симпатии:
    28
    не совсем правильно наверно выразился. Не дубли, а уникальность. Тоесть во всех тайтлах будут обязательно повторяться одни и те же словосочетания.
     
  14. Alexandr

    Alexandr

    Регистрация:
    6 ноя 2012
    Сообщения:
    178
    Симпатии:
    52
    А можно ли задать определенный тайтл или же описание определенной родительской категории и категориям которые присвоены к ней через Ваш способ? То есть берем руками ид категории из бд, дальше я пишу код:
    PHP:
            if ($category_id 500) {
                    if (
    $category_info['seo_title']) {
                      
    $this->document->setTitle('Купить ' .$category_info['name'] . ' в Москве, Санкт-Петербурге по низким ценам');
                  }
              }
    Правильно ли я написал код, и вообще, куда его правильнее вставлять?
     
  15. Reqman

    Reqman

    Регистрация:
    25 фев 2013
    Сообщения:
    213
    Симпатии:
    62
    Про базу данных я не понял идеи, извините.
    А вставлять код в catalog/controller/product/category.php - если для тайтл для категории, а если для товара, то в catalog/controller/product/product.php
     
  16. Alexandr

    Alexandr

    Регистрация:
    6 ноя 2012
    Сообщения:
    178
    Симпатии:
    52
    Ну смотрите, мне нужно сделать тайл для определенной категории (в этой категории есть много подкатегорий)
    А про базу: просто стоит я вытаскиваю ид категории через бд.
     
    adborisov нравится это.
  17. KEH

    KEH

    Регистрация:
    2 июл 2013
    Сообщения:
    204
    Симпатии:
    28
    Ребята, может мой совет не совсем относится к автогенерации тайтлов, но я пользуюсь модулем Seo Ultimate. Он вроде самостоятельно не генерирует, но позволяет к каждой товарной позиции и категории создать свой уникальный тайтл. Я бы рекомендовал вам его установить. С точки зрения сео - необходимый элемент.