Локализация скина и изменения в добавлении меню

Сделал первую версию локализации скина Vistered Little, ещё стоит проверить орфографию и смысловые моменты, но текущую версию перевода можно скачать по этой ссылке.

В процессе локализации скина и освоения движка WordPress наткнулся на такой неприятный момент, как добавление кирилической Рубрики (категории) через «быстрое меню» при создании записи.
Причём удивило то, что добавление в меню «Управление > Рубрики» проходило нормально.

Исследование кода позволило побороть этот недуг, а решением я хочу поделиться с вами.

Изменению подверглись два файла edit-form-ajax-cat.php и admin-db.php

Как выяснилось, вся проблема заключалась в особенности передачи данных в AJAX, а точнее то, что все переменные передаются по умолчанию в кодировке UTF-8. Проблема естественно актуальна только для пользователей Win-1251 версии WordPress, коим я и являюсь. Чтобы побороть этои недуг, воспользуемся самым простым способом — переконвертируем уже переданную переменную в нужную нам кодировку, для этого в edit-form-ajax-cat.php ищем строку

и заменяем её на

*Информация по функции iconv*

В принципе это решает проблему и уже можно вносить категории через «быстрое меню», но вот при ближайшем рассмотрении выясняется, что пункт «Синоним рубрики» продолжает коверкаться, даже при добавлении/изменении его в разделе «Управление > Рубрики».

Просмотрев в общих чертах файл admin-db.php, пришёл к выводу, что проблема заключается в том, что к переменной $category_nicename применяется конвертация, в следствии чего кириллические символы заменяются на utf-8.

Вот как я решил данную проблему. В файле admin-db.php ищем следующий текст

$category_nicename = sanitize_title($cat_name);

и заменяем на

В том же файле заменяем

на

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

Ссылка на архив с файлами.

Следует помнить, что все изменения проводились над локализованной версией от Максима в Windows-1251 кодировке и может не «помочь» в других случаях.

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

Локализация скина и изменения в добавлении меню: 1 комментарий

Добавить комментарий