Вообще вся серия постов про Carbon Fields началась именно с этого, а точнее – когда я пытался на одном уже существующем сайте настроить мультиязычные опции для ACF. У меня просто подгорело. Например потому что там во-первых надо купить acf pro и polylang pro, а во-вторых, всё равно ничего не работает! 🤗
Кстати, не забывайте про мой видеокурс по созданию темы WordPress с нуля на основе готовой HTML-вёрстки!
В этом уроке мы с вами создадим довольно лёгкую страницу настроек, которая будет выглядеть и работать примерно так:
Ниже – функция для добавления префикса мультиязычности, которую вы можете вставить например в functions.php
вашей темы, хотя это наверное будет скорее суффикс, потому что я предпочту дописывать его в конце имён полей, например true_slider_ru
.
function carbon_lang_prefix() { $prefix = ''; if ( ! defined( 'ICL_LANGUAGE_CODE' ) ) { return $prefix; } $prefix = '_' . ICL_LANGUAGE_CODE; return $prefix; }
Чуть подробнее про создание страниц настроек при помощи Carbon Fields вы можете почитать в этом руководстве ну или в официальном документации.
Container::make( 'theme_options', 'more_settings', 'More settings' ) ->set_page_menu_position( 4 ) ->set_icon( 'dashicons-image-filter' ) ->add_fields( array( Field::make( 'text', 'homepage_h1'.carbon_lang_prefix(), 'h1 text' ), ));
Кстати, если хотите локализовать строки «More settings» и «h1 text», можете использовать функцию pll__()
, про которую я подробно рассказывал тут.
А потом для получения этой настройки можем использовать:
echo carbon_get_theme_option( 'homepage_h1' . carbon_lang_prefix() );
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Здравствуйте!
Для мультиязычности я ранее использовал WP Multilang. У него есть возможность добавлять перевод к собственным полям (через файл конфигурации), например: своя страница настроек.
Подскажите пожалуйста, есть ли у Polylang (в бесплатной версии) такая возможность?
Смотрел на странице плагина, но информацию не нашел. Насколько я понял, вы работаете с данным плагином уже давно и возможно знаете ответ.
Добрый день!
А ведь это как раз то, о чём этот пост... Или я не понял ваш вопрос?
И да и нет.
С WP Multilang достаточно кинуть json файл с конкретными полями в папку Темы или Плагина и он подхватит те поля которые необходимо перевести.
В случае с Polylang целая статья необходима → переводим файлы шаблонов темы с использованием Polylang.
Отсюда и ответ, вроде как правильный, но с другой стороны нет.