Дом моих мыслей

Входящие ссылки и их кодировка

06.04.2007 | Прочитано:5536

Такая штука все покоя не давала — когда заходишь в админ-панель справа есть блок «Входящие ссылки», так вот в нем у ссылок кодировка была не такая как у блога и как итог — все названия входящих ссылок отображались как кроказябры «Р�нтересный блог» (в оригинале написано «Интересный блог»).
Было решено — непорядок ликвидировать и рецепт огласить.

Все, что приходит из вне, приходит в кодировке UTF-8, т.е. для корректного отображения необходимо конвертировать в правильную utf8. Для этого существует функция iconv

iconv

Функция iconv
— Преобразует строку из одной кодировки в другую

Синтаксис
string iconv (string in_charset, string out_charset, string str)

Функция выполняет преобразование строки str из кодировки in_charset в out_charset. Возвращает преобразованную строку или FALSE в случае неудачи.

Пример кода
<?php echo iconv("utf8", "UTF-8", "Тест функции."); ?>

Осталось узнать — куда же это вкрутить?

После просмотра исходников в папке wp-admin отыскался файл index.php, а в нем код отвечающий за вывод в админ-панель обратных ссылок:

<li><a xhref="<?php echo wp_filter_kses($item['link']); ?>"><?php echo wptexturize(wp_specialchars($item['title'])); ?></a></li>

Вот оно место сосредоточения ошибочки: $item[‘title’].

Теперь для того, чтобы все работало верно, к массиву $item[‘title’] применяем преобразование кодировок:

$item[‘title’] = iconv(«utf-8», «utf8», $item[‘title’]);

И вставляем этот блок в код вывода входящих ссылок, т.е. заменяем ее на следующую строку или дополняем, кому как удобнее:

<li><a xhref="<?php echo wp_filter_kses($item['link']); ?>"><?php $item['title'] = iconv("utf-8", "utf8", $item['title']); echo wptexturize($item['title']); ?></a></li>

Может это в новых версиях WP и исправлено, но я люблю пофиксить сам :)

P.S. В начале статьи я говорил об интересном блоге, так вот этот блог и в самом деле очень интересный — советую blog.pmaster.net

Wordpress

Похожие статьи