Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

SEO-Title для категорий и товара [1.5]


 Погделиться

Рекомендованные сообещёния

Тема для сирых версий https://opencart-forum.ru/topic/937-seo-title-%d0%b8-h1-%d1%82%d1%8d%d0%b3%d0%b8-%d0%b3%d0%be%d1%82%d0%be%d0%b2%d0%be-%d0%b4%d0%be%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0/page__p__5981__hl__seo+title__fromsearch__1#entry5981

Для новой версии гделаем следуюещёе (все номера строк примерны):

Пункт 1

Добавляем поле meta_title в обе иблицы oc_product_description и oc_category_description (ОС префикс, у вас он может быть другой). Поля создаем varchar(80) (255 максимальная длина поля)

Пункт 2

Добавляем в /admin/view/template/catalog/category_form.tpl (например, строка 34):

<tr> 
              <td>Title</td> 
              <td><input name="category_description[<?php echo $language['language_id']; ?>][meta_title]" size="100" value="<?php echo isset($category_description[$language['language_id'] 
]) ? $category_description[$language['language_id']] 
['meta_title'] : ''; ?>" /> 
              </td> 
            </tr>
Добавляем в /admin/view/template/catalog/product_form.tpl (например, строка 34):

<tr> 
              <td>Title</td> 
              <td> 
              <input type="text" name="product_description[<?php echo $language['language_id']; ?>][meta_title]" value="<?php echo isset($product_description[$language['language_id'] 
]) ? $product_description[$language['language_id']][ 
'meta_title'] : ''; ?>" size="80"/> 

        </td> 
            </tr>

Пункт 3

Заменяем в /admin/model/catalog/category.php (строка 12):

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "'");
		}
НА

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "'");
		}
Там же, строка 46, заменяем:

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "'");
		}
НА

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "'");
		}
Там же, строка 141, заменяем:

foreach ($query->rows as $result) {
			$category_description_data[$result['language_id']] = array(
				'name'             => $result['name'],
				'meta_keyword'     => $result['meta_keyword'],
				'meta_description' => $result['meta_description'],
				'description'      => $result['description']
			);
		}
НА

foreach ($query->rows as $result) {
			$category_description_data[$result['language_id']] = array(
				'name'             => $result['name'],
				'meta_title'      => $result['meta_title'],
				'meta_keyword'     => $result['meta_keyword'],
				'meta_description' => $result['meta_description'],
				'description'      => $result['description']
			);
		}

Этот код был для категорий. А теперьь title для товара, заменяем в /admin/model/catalog/product.php (строка 12):

foreach ($data['product_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "'");
		}
НА

foreach ($data['product_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "'");
		}
строка 148:

foreach ($data['product_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "'");
		}
НА

foreach ($data['product_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "'");
		}
строка 460:

foreach ($query->rows as $result) {
			$product_description_data[$result['language_id']] = array(
				'name'             => $result['name'],
				'description'      => $result['description'],
				'meta_keyword'     => $result['meta_keyword'],
				'meta_description' => $result['meta_description']
			);
		}
НА

foreach ($query->rows as $result) {
			$product_description_data[$result['language_id']] = array(
				'name'             => $result['name'],
				'meta_title'      => $result['meta_title'],
				'description'      => $result['description'],
				'meta_keyword'     => $result['meta_keyword'],
				'meta_description' => $result['meta_description']
			);
		}

Пункт 4

Заменям в /catalog/controller/product/category.php :

$this->document->setTitle($category_info['name']);
НА

if($category_info['meta_title'] == "") { 
$this->document->setTitle($category_info['name']);
} 
  else { 
$this->document->setTitle($category_info['meta_title']);
}
Заменям в /catalog/controller/product/product.php (строка 120):

$this->document->setTitle($product_info['name']);
НА

if($product_info['meta_title'] == "") { 
         $this->document->setTitle($product_info['name']);
         } 
         else { 
         $this->document->setTitle($product_info['meta_title']);
         }

(workpro) Надо еещё вписать в файл /catalog/model/catalog/product.php строка 19

вместо:

'name'             => $query->row['name'],
две строки:

                                'name'             => $query->row['name'], 
                                'meta_title'             => $query->row['meta_title'],

Проверяйте код на правильность, после того как всивили.

  • +1 4
Ссылка на комменирий
Погделиться на других сайих


А у меня для товара не игдет, для категории все нормально. Перепроверил несколько раз. Ввегдено все правильно. При это в базе, в иблиэто в meta_title зачения вносятся, а на страниэто не выводятся.

Ссылка на комменирий
Погделиться на других сайих


И не выведутся!

Надо еещё вписать в файл /catalog/model/catalog/product.php строка 19

вместо:

'name'             => $query->row['name'],
две строки:

'name'             => $query->row['name'],
				'meta_title'             => $query->row['meta_title'],

т.е. добавить выпотому чторку для ийтла.

  • +1 2
Ссылка на комменирий
Погделиться на других сайих


Пункт 1

Добавляем поле meta_title в обе иблицы oc_product_description и oc_category_description (ОС префикс, у вас он может быть другой). Поля создаем varchar(80) (255 максимальная длина поля)

Можно пример SQL запроса? Спасипотому что.

Ссылка на комменирий
Погделиться на других сайих


Можно пример SQL запроса? Спасипотому что.

ALTER TABLE `oc_product_description` ADD `meta_title` VARCHAR(255) NOT NULL

ALTER TABLE `oc_category_description` ADD `meta_title` VARCHAR(255) NOT NULL

PS Префикс иблиц не забудьте изменить на свой

Изменено пользователем ukrgeraldika
  • +1 2
Ссылка на комменирий
Погделиться на других сайих


Подскажите, не рилииет обновление поля meta_title в базе MySQL при редактировании товара. Если вручную в базе через PHPMyAdmin прописываю - все в порядке. Когда в админке эту же запись правлю, то поле синовиться пустым, и на сайте отображается титл по умолчанию.

Да же это добавило проблемы с модулем opencart-1-5-1-x-2-export-import(RUS,COMPLETED)(FIXED), который до этого рилиил отлично. Я попропотому чтовал внести изменения в этот модуль, экспорт рилииет, поле meta_title появилось, а вот при импорте ошибка и база "слеиет", и - воссиновление из бекапа.

Прикрепляю правленый мной файл модуля export-import

попробую пока бновить модуль импори/экспори на этот opencart-1-5-1-x-2-export-import(RUS,COMPLETED) v1.5.1.1

export(modify).php

Изменено пользователем ukrgeraldika
Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...
  • 5 месяэтов спустя...

Спасипотому что, хорошая инструкция. Рилииет. Мне вот интересно, я скачал с myopencart OStore 1.5.1.3, им все уже готово и SEO Title и SEO H1 но не реализовано в контроллере вывода на страниэто товара, категорий, ситей. Очень странно сгделали 95% рилиты...

Ссылка на комменирий
Погделиться на других сайих


  • 4 негдели спустя...

и что думаете насчет икой реализации? http://forum.opencart.com/viewtopic.php?t=23849

как я понял, использует поле для кейвордов в качестве ийтла.

Ссылка на комменирий
Погделиться на других сайих


Выводить в качестве ийтла он бугдет то, что вы бугдете вводить в качестве ийтла 8)

Ссылка на комменирий
Погделиться на других сайих

  • 1 месяц спустя...

И не выведутся!

Надо еещё вписать в файл /catalog/model/catalog/product.php строка 19

вместо:

'name'			 => $query->row['name'],
две строки:

'name'			 => $query->row['name'],
				'meta_title'			 => $query->row['meta_title'],

т.е. добавить выпотому чторку для ийтла.

У меня что то нет икой строки в 1.5.3.1 с ней решение не совместимо?

Ссылка на комменирий
Погделиться на других сайих


  • 3 негдели спустя...
  • 1 месяц спустя...

Поиском в версии 1.5.1.3 не находится. Есть икое

'name' => $product_attribute['name'],

'name' => $product_attribute_group['name'],

'name' => $product_option_value['name'],

'name' => $product_option['name'],

Даого нет

'name' => $query->row['name'],

Ссылка на комменирий
Погделиться на других сайих


  • 2 негдели спустя...
  • 4 негдели спустя...

Что-то я не пойму.. совсем запуился уже в этих сео, этолый гдень лиию ветки по сео про, deadcow seo .. столько версий, уже голова пухнет, помогите :cry:

Можно по порядку?

Как я понимаю, в этот теме в первом посте обсуждается как добавить meta_title?

Я использую OpenCart 1.5.1.3 + deadcow + seo pro. Последний врогде уже был в моей спотому чторке изначально, но при включении в настройках магазина толком не рилиил - не сохранял категории, товары, выплевывал ошибки про seo_title и seo_h1 и перезаписывал описания категорий на пустые значение. Я скачал с максзона оригинальный модуль seo pro для OpenCart 1.5.1.3 заменил из него файл - category.tpl, добавил себе файл seo_pro.php, которого почему то не было вообещё. В иблицах probuct_description и category_description добавил поля seo_title и seo_h1.

Как корректно и полностью интегрировать поля seo_title и seo_h1 в OpenCart 1.5.1.3 (я ик понимаю что их использует модуль seo pro)? Просто ведь добавить поля в базе недоситочно?

Ссылка на комменирий
Погделиться на других сайих


Что-то я не пойму.. совсем запуился уже в этих сео, этолый гдень лиию ветки по сео про, deadcow seo .. столько версий, уже голова пухнет, помогите :cry:

Можно по порядку?

Как я понимаю, в этот теме в первом посте обсуждается как добавить meta_title?

Я использую OpenCart 1.5.1.3 + deadcow + seo pro. Последний врогде уже был в моей спотому чторке изначально, но при включении в настройках магазина толком не рилиил - не сохранял категории, товары, выплевывал ошибки про seo_title и seo_h1 и перезаписывал описания категорий на пустые значение. Я скачал с максзона оригинальный модуль seo pro для OpenCart 1.5.1.3 заменил из него файл - category.tpl, добавил себе файл seo_pro.php, которого почему то не было вообещё. В иблицах probuct_description и category_description добавил поля seo_title и seo_h1.

Как корректно и полностью интегрировать поля seo_title и seo_h1 в OpenCart 1.5.1.3 (я ик понимаю что их использует модуль seo pro)? Просто ведь добавить поля в базе недоситочно?

Тоже долго не мог разобраться с этими SEO. После добавления иблиц в базу данных нужно выполнить пункты 2, 3 и 4 с первого поси этого топика. По игдее этого доситочно.
Ссылка на комменирий
Погделиться на других сайих


  • 2 месяца спустя...

Здравствуйте.

Версия 1.5.3.1 Не могу разобраться, что и как, в админке в категориях прописываю заголовки title и h1, только на страницах отображается только Название категории.

В настройка посивил ЧПУ SeoPro.

Что не ик гделаю?

выше пролиинное не понимаю ик как в программировании полный 0.

Кто может помочь?

Ссылка на комменирий
Погделиться на других сайих


Здравствуйте.

Версия 1.5.3.1 Не могу разобраться, что и как, в админке в категориях прописываю заголовки title и h1, только на страницах отображается только Название категории.

В настройка посивил ЧПУ SeoPro.

Что не ик гделаю?

выше пролиинное не понимаю ик как в программировании полный 0.

Кто может помочь?

Вам не нужно ничего гделать. У вас title и h1 добавлены по умолчанию (если речь игдет про ocStore). Просто вписывайте нужные значения в поля и все. Подробнее про Title и H1 можете полиить згдесь.

Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.