Jump to content

Атрибут href lang на wordpress для многоязычного сайта


Recommended Posts

  • VIP

Хочу поделиться куском кода, который будет полезен для владельцев многоязычных сайтов на wordpress. Искал что-то подобное в Сети, но не нашел. Может, кому-то будет полезно.

Дано - 2 сайта на разных языках, но с одинаковой структурой и одинаковыми ссылками (копии на других языках).

Задача - нужно вывести ссылки на другие языковые версии, желательно для всех страниц. Чтобы внутренние страницы сайта А ссылались на внутренние сайта Б и наоборот.

Нужный код, который вставляем перед закрывающим тегом Head

<?php if ( is_single() ) { ?><link rel="alternate" href="http://site.ru<?php echo wp_make_link_relative( get_permalink() ); ?>" hreflang="ru" />
<?php }
else { ?>
<link rel="alternate" href="http://site.ru/" hreflang="ru" />
<?php } ?>

Небольшой недостаток в том, что получилось вывести альтернативную ссылку только для сингл записей и для главной страницы. Для страницы категорий запросом wp_make_link_relative выводится ссылка для 1-й записи категории, поэтому пришлось городить <?php } else { ?>, но и вывод для одиночной записи уже немало. Думаю, для получения ссылки для категории (и тегов) тоже можно что-то придумать.

В коде "site.ru" - это адрес сайта, который указываем альтернативным для какой-то языковой версии.

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

Есть вопрос? Задай его профессиональным веб-мастерам, SEO и другим специалистам!

  • VIP

Сделал еще одну важную вещь - настроил код вывода альтернативной ссылки для категорий WP для мультиязычных сайтов. Кто занимается ими, тем пригодится. Доработанный код для вывода альтернативных ссылок не только для главной страницы и одиночных записей, но и для категорий (код ставится перед закрывающим тегом head):

<?php if ( is_single() ) { ?><link rel="alternate" href="http://site.ru<?php echo wp_make_link_relative( get_permalink() ); ?>" hreflang="ru" /><?php } ?>

<?php if ( is_category() ) { ?><link rel="alternate" href="http://site.ru<?php $category_id = get_cat_ID( single_cat_title('', false) ); $category_link = get_category_link( $category_id ); echo wp_make_link_relative( $category_link ); ?>" hreflang="ru" /><?php } ?>

<?php if (is_front_page()) { ?><link rel="alternate" href="http://site.ru/" hreflang="ru" /><?php } ?>

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.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...