Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Sitemap для двуязычного сайта


Recommended Posts

Opencart 3.0.2.0 (оригинальная версия)
Магазин 2 язычный.

Штатный модуль Google Sitemap создает карту сайта только для основного языка.
На маркетплейсе офф. сайта лежит платный модуль мультиязычного sitemap, формирующий отдельные feed-ссылки для каждого языка. Но у модуля только 4 закачки, что наводит на мысли, что, возможно, есть способ сформировать отдельную карту для второго языка каким-то иным способом.

Была мысль временно переключить основной язык, сформировать карту штатным модулем, сохранить в файл, и этот файл вскормить Google Search Console. Метод, конечно, совершенно лишенный автоматизма, но тем не менее... Но каким образом получить вместо ссылки файл xml с картой? Насколько я понял, feed-ссылка не предполагает существования физического файла где-нибудь в public_html?

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

Link to post
Share on other sites

2 часа назад, Halonest сказал:

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

 

добавить цикл в сайтмап


...
$this->load->model('localisation/language');
$languages = $this->model_localisation_language->getLanguages();
$config_language_id = $this->config->get('config_language_id');
				
				foreach ($languages as $language) {
					$this->config->set('config_language_id', $language['language_id']);
					.....
				}

$this->config->set('config_language_id', $config_language_id);
...

примерно так

Link to post
Share on other sites

@Otvet , спасибо!
Этот цикл следует вставить в \admin\controller\extension\feed\google_sitemap.php - верно?
Не подскажете, как этот цикл корректно внедрить в код? (я в php, увы, нуб)

google_sitemap.php

Link to post
Share on other sites

а можно еще просто скопировать все ссылки, сделать str_replace добавив префикс языка и вальнуть его в карту

Link to post
Share on other sites
29 минут назад, spectre сказал:

а можно еще просто скопировать все ссылки, сделать str_replace добавив префикс языка и вальнуть его в карту

Если... это языковая ссылка с префиксом
А если как в тройке - язык имеет свой линк? (пример - статьи от марка)
 

Link to post
Share on other sites
11 минут назад, chukcha сказал:

Если... это языковая ссылка с префиксом
А если как в тройке - язык имеет свой линк? (пример - статьи от марка)
 

можно поиграться с $this->config->get('config_language_id') 

тут же общий пример :)

Link to post
Share on other sites

ага
$old_language_id = $this->config->get('config_language_id') 
$old_session_code = $this->session->data

link

Вернуть

Link to post
Share on other sites
14 часов назад, Halonest сказал:

в \admin\controller\extension\feed\google_sitemap.php - верно?

catalog

 

14 часов назад, Halonest сказал:

Не подскажете, как этот цикл корректно внедрить в код? (я в php, увы, нуб)

всё сделать за вас?

нет

Link to post
Share on other sites
4 часа назад, spectre сказал:

а можно еще просто скопировать все ссылки, сделать str_replace добавив префикс языка и вальнуть его в карту

Так в моем случае не сработает: на сайте включен SEO URL, ссылки на различных языках отличаются.

 

 

3 часа назад, Otvet сказал:

всё сделать за вас?

За меня не нужно. Но совет ценен, если знать, как им воспользоваться... В catalog\controller\extension\feed\google_sitemap.php вижу ряд циклических команд для формирования карты - отдельно для продуктов, производителей, статей, категорий и т.п. Но не понимая структуры языка, не разобраться - как применить Ваш цикл. Могу предположить только, что основные циклы стокового файла должны быть каким-то образом вложены в цикл, перебирающий языки...

Link to post
Share on other sites

В 25.12.2018 в 18:39, Halonest сказал:

основные циклы стокового файла должны быть каким-то образом вложены в цикл, перебирающий языки...

именно

Link to post
Share on other sites
  • 1 year later...
В 26.12.2018 в 20:13, Halonest сказал:

@Otvet , благодарю. Попробую разобраться.

@Halonest Удалось вам разобраться? Поделитесь решением.

Link to post
Share on other sites

  • 2 months later...
7 минут назад, kirosin сказал:

мне наоборот нужно убрать мультиязічность

нема питань

http://demo3.slasoft.kharkov.ua/index.php?route=extension/feed/google_sitemap_fast&language=2

 

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

 

В 24.12.2018 в 17:27, Halonest сказал:

Штатный модуль Google Sitemap создает карту сайта только для основного языка.

 

Если стоит SEO Pro с указанием языка в URL, то достаточно гуглу скормить две ссылки:

 

http://example.com/en/index.php?route=extension/feed/google_sitemap

http://example.com/de/index.php?route=extension/feed/google_sitemap

 

Или в 3.0 SEO Pro принципиально поменялся и больше он переключать язык через URL не умеет?

Link to post
Share on other sites

  • 2 months later...
В 02.07.2020 в 13:57, chukcha сказал:

Для мультиязычной карты нужно использовать hreflang

пример

http://demo3.slasoft.kharkov.ua/index.php?route=extension/feed/google_sitemap_fast

Поскольку по Вашей ссылке пример карты сайта не открывается - решила спросить: я делаю sitemap через hreflang, как на скриншоте. Версия опенкарт 3.0.3.6.

Мне можно сделать в таком виде, как я указываю или нужно ставить модуль "SEO мультиязык" и переделывать?

 

И как в таком случае указать две версии языка для главной страницы?

 

Screenshot_2.png

Edited by georgina
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.