QTranslate для пользовательского типа сообщения

Как добавить поддержку qtranslate для настраиваемого типа сообщений? Просто сохраните текст с тегами ИЛИ добавьте переключатель переключателей.

Поле Custom Custom Type:

add_meta_box('project_rolesid', 'Roles box', 'project_roles', 'portfolio', 'normal'); <textarea id="portfolio_project_roles" cols="80" rows="7" name="portfolio_project_roles">'.$roles.'</textarea> 

Попытка добавить suport, добавив строку

 add_action('portfolio_project_roles','qtrans_useCurrentLanguageIfNotFoundShowAvailable', 0); 

в qtranslate_hooks.php , но никакого эффекта.

Использование тегов довольно просто. Все данные в qTranslate хранятся между специальными тегами <!--:lang-->content<!--:--> , где lang – это код для языка, например en , ru , de и т. Д.

Пользовательский интерфейс редактирования прав редактирования изменяется с помощью тяжелого JavaScript qTranslate. JavaScript анализирует содержимое для заданных полей и создает новые элементы управления. Перед сохранением того же JavaScript делает наоборот, объединяет поля пользовательского интерфейса и переносит их в теги выше. Это простое поведение можно реплицировать, введя дополнительный JavaScript из вашего пользовательского кода типа сообщения, чтобы разделить ваше настраиваемое поле на столько языков, сколько вам нужно, а затем объединить их вместе, используя qtrans_integrate_ * , qtrans_save и другие существующие шансы и цели в качестве руководства для вашего собственный код.

Опять же, это очень просто – разделите метки в #portfolio_project_roles , для каждого языка создайте #portfolio_project_roles_{lang} textareas и заполните разделенным контентом, прежде чем сохранять слияние обратно в один #portfolio_project_roles который #portfolio_project_roles каждую полезную нагрузку на контент в теги.

Когда вы сохраните, ваши метаданные типа вашего типа в вашей базе данных будут выглядеть следующим образом: "portfolio_roles" => "<!--:en-->Vladimir - Project Lead<!--:--><!--:ru-->Владимир - куратор проекта<!--:-->" . Чтобы отобразить фрагменты этих данных в зависимости от языка, вы должны использовать несколько фильтров qTranslate, в основном: qtrans_useCurrentLanguageIfNotFoundShowAvailable и т. П., Или даже qtrans_use .

 <div id="content> <?php echo qtrans_useCurrentLanguageIfNotFoundShowAvailable( get_post_meta( get_the_ID(), 'portfolio_roles', true ) ) ); ?> </div> 

Это выведет правильную полезную нагрузку на разделение языка (не забудьте выйти из выхода, используя esc_html ).

Более чистым подходом было бы использование meta filter и qtrans_use* его к qtrans_use* . Я уверен, что есть другие интересные подходы, которые могут быть приняты, но приведенное выше должно предоставить вам основные сведения о том, как все работает. Надеюсь это поможет.