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

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

Кстати, не забывайте про мой видеокурс по созданию темы WordPress с нуля на основе готовой HTML-вёрстки!

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

мультиязычность опций в carbon fields с polylang

Шаг 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() );

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

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

%d такие блоггеры, как: