Carbon Fields и Polylang – мультиязычность опций

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Вообще вся серия постов про Carbon Fields началась именно с этого, а точнее – когда я пытался на одном уже существующем сайте настроить мультиязычные опции для ACF. У меня просто подгорело. Например потому что там во-первых надо купить acf pro и polylang pro, а во-вторых, всё равно ничего не работает! 🤗

В этом уроке мы с вами создадим довольно лёгкую страницу настроек, которая будет выглядеть и работать примерно так:

Шаг 1. Суффикс/префикс мультиязычности

Ниже – функция для добавления префикса мультиязычности, которую вы можете вставить например в functions.php вашей темы, хотя это наверное будет скорее суффикс, потому что я предпочту дописывать его в конце имён полей, например true_slider_ru.

function carbon_lang_prefix() {
	$prefix = '';
	if ( ! defined( 'ICL_LANGUAGE_CODE' ) ) {
		return $prefix;
	}
	$prefix = '_' . ICL_LANGUAGE_CODE;
	return $prefix;
}

Шаг 2. Создаём страницы настроек

Чуть подробнее про создание страниц настроек при помощи 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() );
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии