Получаем ссылку на запись или страницу в любой языковой версии (Polylang)
В некоторых шаблонах иногда приходится выводить статические ссылки в коде, лучше, конечно, это делать через плагин Advanced Custom Fields, но, если по каким-то причинам нужно использовать прямую ссылку в коде, тогда, обычно, используется такой формат вывода:
<?php echo get_the_title(17); ?>
Таким образом, мы получим заголовок страницы с ID=17.
Но если у нас на сайте используется плагин мультиязычности Polylang, и на сайте создано несколько языков, тогда в любом языке будет выводиться страница с ID=17, на каком бы языке она не была.
В таком случае, если на сайте используется плагин Polylang, нужно использовать такой формат:
<?php echo get_the_title(pll_get_post(17)); ?>
Это позволяет выводить для нужного языка связанную версию страницы со страницей ID=17.
Таким образом, можно вывести и ссылку на связанную языковую версию и остальные параметры определенной страницы.
<?php echo get_permalink(pll_get_post(17)); ?>
Чтобы получить ссылку на категорию, используем такой формат:
<?php echo get_category_link(pll_get_term(7)); ?>
Источник — https://martinwolf.org/blog/2014/07/polylang-snippet-automatically-get-id-of-translated-page
На одном из проектов требовалось вывести Open Graph Title и Open Graph Description, что это…
Как изменить изображение флага в переключателе плагина polylang? Например, вы хотите вставить в переключатель языков…
Есть задача — удалить круглые скобки вокруг количества постов в виджете «Рубрики«. Добавьте этот код…
Самый простой вариант вывода ссылки на предыдущий или следующий пост на странице поста: Вариант с…
11 комментариев
Ответить
Спасибо тебе, добрый человек!!! Четвертый час поисков наконец-то увенчался успехом и я нашла эту статью. Проблема решена.
Пожалуйста) Рад, когда мои статьи кому-то полезны кроме меня.)
Спасибо ОГРОМНОЕ
Успехов!=)
огромное спасибо!! 4 часа не искал, благо ваш ответ был вторым в выдаче гугла.
Рад помочь!
Спасибо большое за статью! Всё получилось реализовать, как и хотела
Отлично! Успехов)
Способ не помог, т.к. ID страницы с разными языками ОТЛИЧАЮТСЯ, где вы там увидели одинаковые ID я не знаю.
Конечно же ID постов на разных языках отличаются, поэтому и используется функция
чтобы получить заданный пост, но вывести его языковую версию для текущего языка. Не получается или потому что неправильно выбран ID поста, или у поста нет перевода для текущего языка.
Повторил внимательнее-получилось, с толку сбили разные id