ACF і Qtranslate-X
Була справа не так давно, я взявся за доопрацювання сайту на WordPress, в ньому було встановлено плагін Qtranslate-X і потрібно було для певних шаблонів сторінок додати поле введення тексту. Проблема виникла в тому, що плагін ACF був свіжим, а Qtranslate-X трохи застарів і у створене поле не додавалася можливість вибору мови.
Виправлення цієї проблеми з плагіном Qtranslate-X виявилося елементарним. Все, що було необхідно, це створити хук і при створенні нового поля додати певний клас.
Виконайте кроки нижче, щоб подружити ACF та qTranslate-X:
- Перш ніж ми перейдемо до частини виправлення ACF, вам потрібно додати ім'я класу в поля, які ви хочете використовувати кількома мовами. Перейдіть на сторінку налаштувань qTranslate-X (Налаштування > Мову) в адмінці WordPress та натисніть вкладку «Integration».
- Прокрутіть вниз і знайдіть налаштування «Custom Fields». Ви побачите поле введення "class". Тут ви можете додати ім'я класу для полів користувача, які ви хочете використовувати кількома мовами. У нашому випадку ми використали ім'я класу transhable, як показано на скріншоті нижче. Після додавання імені класу збережіть зміни.
- Тепер давайте перейдемо до параметрів поля ACF. Для кожного поля, яке ви хочете зробити багатомовним, додайте ім'я класу, додане на кроці 2, у полі «class» у розділі «Wrapper Attributes», як показано нижче:
- Майже зроблено. У налаштуваннях поля ACF ви не можете додати ім'я класу безпосередньо у поле введення або поле textarea, яке ви хотіли б використовувати кількома мовами. Тому замість цього ми додали його в обгортку на кроці 3, і тепер нам потрібно використовувати фільтр ACF, щоб додати його до входу або до області тексту. У файлі functions.php вашої теми додайте наступний фрагмент:
1234567add_filter('acf/prepare_field', 'my_translatable_acf_fields');function my_translatable_acf_fields($field){if (strpos($field['wrapper']['class'], 'translatable') !== false){$field['class'] = 'translatable';}return $field;} - От і все. Тепер, коли ви використовуєте перемикач мови qTranslate на екрані редагування посту, ваші «перекладені» поля будуть багатомовними, що дозволить вам додавати контент різними мовами., це допоможе тим із вас, хто використовує Advanced Custom Fields та qTranslate-X разом. Якщо у вас є питання чи відгуки, повідомте нам про це у коментарях нижче. У своїх проектах ми використовуємо інший плагін, але часто стикаємося у доробках із цим, думаю багатьом буде корисна така стаття.
/*
- Базовий курс з веб-дизайну;
- Верстка сайтів;
- Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
- Розробка сайтів на PHP.