Jump to content
Halonest

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

Recommended Posts

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

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

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

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

Share this post


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);
...

примерно так

Share this post


Link to post
Share on other sites

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

google_sitemap.php

Share this post


Link to post
Share on other sites

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

Share this post


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

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

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

Share this post


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

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

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

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

Share this post


Link to post
Share on other sites

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

link

Вернуть

Share this post


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

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

catalog

 

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

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

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

нет

Share this post


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

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

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

 

 

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

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

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

Share this post


Link to post
Share on other sites
В 25.12.2018 в 18:39, Halonest сказал:

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

именно

Share this post


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

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

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

Share this post


Link to post
Share on other sites

 

В 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 не умеет?

Share this post


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
You are posting as a guest. If you have an account, please sign in.
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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.