Для WordPress-а существует замечательный плагин карты сайта, который выводит страницы, записи, категории и тп. Называется он Dagon Design Sitemap Generator. Покорило меня в нем возможность вывода заметок с категорий, до этого я не видел такой возможности в других плагинах (да и не искал особо). Но в нем был один небольшой баг, он не умел работать с плагином qTranslate, который использовался на одном из разрабатываемых мной проектов. Вывод заголовков выглядел таким образом:
<!--:ru-->О нас<!--:--><!--:en-->About us<!--:--><!--:de-->Über uns<!--:-->
Сами видите какой ужас, но на форуме wordpress.org решение уже было. Однако, оставался второй баг — не менялись названия рубрик (категорий) и на этот вопрос ответа я не нашел, но придумал сам.
Все изменения будем делать в sitemap-generator.php.
1. Исправляем ошибки с названиями страниц и заметок:
Найти:
$the_title = htmlspecialchars(trim($page_data[$p]['title']));
Заменить на:
$the_title = htmlspecialchars(trim(__($page_data[$p]['title'])));
Найти:
$the_title = htmlspecialchars(trim($post_data[$p]['title']));
Заменить на:
$the_title = htmlspecialchars(trim(__($post_data[$p]['title'])));
2. Исправляем ошибки с названиями страниц и заметок:
Найти:
$t_out .= ' title="' . strip_tags($post_data[$p]['title']) . '"';
Заменить на:
$t_out .= ' title="' . strip_tags(qtrans_useTermLib($post_data[$p]['title'])) . '"';
Найти:
$t_out .= '>' . $post_data[$p]['title'] . '';
Заменить на:
$t_out .= '>' . qtrans_useTermLib($post_data[$p]['title']) . '';
Вот так страница Карта сайта приобрела возможность выводить названия на разных языках. Пользуйтесь на здоровье и удачи вам! 🙂