WordPress как на ладони
wordpress jino

Carbon Fields — обзор плагина и начало работы

Carbon Fields - это библиотека (плагин) для удобного создания произвольных полей в административной части WordPress, а также вывода сохранённых данных во фронт-энде. Она позволяет разработчикам быстро добавлять новые поля для записей, таксономий, меню и так далее. Но всё это создаётся с помощью кода, потому данный плагин больше подходит для разработчиков.

Carbon Fields - плагин для создания произвольных полей в WordPress

При создании Carbon Fields были учтены недостатки и достоинства таких популярных плагинов, как Advanced Custom Fields и CMB2, а синтаксис создания полей позаимствован у Django Models.

Чтобы понимать по какому принципу работает Carbon Fields и вообще о чем идёт речь, читайте заметку о произвольных полях в WordPress. Эта библиотека (плагин) делает тоже самое, только в разы удобнее, плюс куча дополнительных возможностей.

Carbon Fields использует пространства имен PHP, а значит требует PHP 5.3+.

Carbon Fields можно скачать:

Принцип работы

Плагин рассчитан в первую очередь на разработчиков и не имеет визуального интерфейса. Все создается и работает через создание объектов и указания им параметров. Но не смотря на это, логика продумана и довольна удобна.

Основными компонентами библиотеки являются:

1. Container (контейнер) – группа полей

Создаем контейнер, то есть место, куда будут складываться поля. Создание контейнера в первую очередь определяет, где и как будут отображаться произвольные поля. Например, при создании контейнера указываем его тип - Post Meta. Теперь он будет отображаться только на странице редактирования Записи, если Term Meta - таксономии (рубрики, теги и т.п.). Carbon Fields имеет в своём составе контейнеры для всех возможных типов контента WordPress.

2. Field (поле) – одиночное поле

Создаем поля в выбранном контейнере. Каждое поле имеет свой внешний вид и предназначение. Carbon Fields предоставляет широкий выбор видов полей, покрывающих большинство задач при web-разработке. Это простые текстовые поля и области текста, поля для загрузки файлов или изображений, поля для выбора цвета или сайдбара и так далее - более 20 типов полей! Ко всему прочему, вы в праве создать своё уникальное поле!

3. Data Storage (хранилище) – базовое хранилище данных для значений полей

Вывод сохраненных данных в шаблоне темы или оперирование этими данными для реализации логики web-приложения.

Все данные хранятся как нативные данные WordPress: если это записи, то в таблице *_postmeta, комменты - *_commentmeta, термы - *_termmeta, пользователи - *_usermeta, ну и опции в таблице опций.

Элегантный и понятный синтаксис кода плагина написан в стиле ООП, что даёт возможность наследовать классы контейнеров и полей, чтобы изменить их принцип работы под себя. Об этом в следующих статьях...

Пример

Большое количество примеров вы найдете на страницах описания контейнеров и полей, а сейчас небольшая демонстрация кода и результата работы Carbon Fields.

Страница настроек темы

Пример настроек темы

<?php
use Carbon_Fields\Container;
use Carbon_Fields\Field;

Container::make( 'theme_options', 'Пульт' )
		 ->add_tab( 'Наша команда', array(
			 Field::make( 'complex', 'crb_places', 'Список' )
				  ->add_fields( array(
					  Field::make( 'image', 'photo', 'Фото' )->set_value_type( 'url' )->set_width( 33 ),
					  Field::make( 'text', 'job', 'Должность' )->set_width( 33 ),
					  Field::make( 'text', 'fio', 'Фамилия, имя и отчество' )->set_width( 33 )
				  ) )
		 ) )
		 ->add_tab( 'Контакты', array(
			 Field::make( 'text', 'url_fb', 'Фейсбук' ),
			 Field::make( 'text', 'url_vk', 'вКонтакте' ),
			 Field::make( 'text', 'url_tw', 'Твиттер' ),
			 Field::make( "map", "crb_company_location", "Местоположение" )
				  ->help_text( 'Перетащите указатель на карту, чтобы выбрать местоположение' ),
		 ) )
		 ->add_tab( 'СЕО', array(
			 Field::make( 'text', 'title-lp', 'Title лендинга' ),
			 Field::make( 'text', 'description-lp', 'Description лендинга' ),
			 Field::make( "header_scripts", "header_google_analytics", 'Код счётчика Гугл.Аналитикс' ),
			 Field::make( "header_scripts", "header_script_yandex_metrika", 'Код счётчика Яндекс.Метрики' ),
		 ) );

Минимум кода - максимум возможностей! И пример отражает лишь их малую часть. Но даже тут уже видно как можно быстро создать блоки для комфортного управления сайтом. Подобные контейнеры можно создавать для различных типов записей, таксономий, меню, юзеров, опций и так далее - обо всех них поговорим в отдельной статье о контейнерах в Carbon Fields.

Установка и подключение Carbon Fields

Как упоминалось выше установить библиотеку можно несколькими способами, рассмотрим каждый из них.

На данный момент плагин имеет версию 1.6, а библиотека уже имеет версию 2. Это значит, что плагин отстаёт по функционалу от актуальной библиотеки. Так как Carbon Fields больше рассчитан для разработчиков, то в данных материалах будет рассматриваться библиотека.

Как Плагин

Плагин устанавливается из репозитория как обычно. Этот способ позволяет следить за обновлением библиотеки.

Но если отключить плагин, то все функции Carbon Fields, которые использовались в теме/плагине перестанут работать, поэтому, если устанавливается плагин, то в теме рекомендуется прописать «страховку» для функций библиотеки. Этот код сохранит работоспособность темы, если плагин отключить.

if ( ! function_exists( 'carbon_get_post_meta' ) ) {
	function carbon_get_post_meta( $id, $name, $type = null ) {
		return false;
	}   
}

if ( ! function_exists( 'carbon_get_the_post_meta' ) ) {
	function carbon_get_the_post_meta( $name, $type = null ) {
		return false;
	}   
}

if ( ! function_exists( 'carbon_get_theme_option' ) ) {
	function carbon_get_theme_option( $name, $type = null ) {
		return false;
	}   
}

if ( ! function_exists( 'carbon_get_term_meta' ) ) {
	function carbon_get_term_meta( $id, $name, $type = null ) {
		return false;
	}   
}

if ( ! function_exists( 'carbon_get_user_meta' ) ) {
	function carbon_get_user_meta( $id, $name, $type = null ) {
		return false;
	}   
}

if ( ! function_exists( 'carbon_get_comment_meta' ) ) {
	function carbon_get_comment_meta( $id, $name, $type = null ) {
		return false;
	}   
}

Как Библиотека

Этот способ лишает вас обновлений, но гарантирует неизменную работоспособность кода.

Установить Carbon Fields как библиотеку можно двумя методами.

Установка библиотеки с помощью composer

  1. Перейдите в каталог с темой/плагином.
  2. Выполните команду
composer require htmlburger/carbon-fields
  1. Добавьте в верхнюю часть вашего файла (functions.php - если тема, основной файл - если плагин) следующее:
use Carbon_Fields\Container;
use Carbon_Fields\Field;

add_action( 'carbon_fields_register_fields', 'crb_attach_theme_options' );
function crb_attach_theme_options() {
	Container::make( 'theme_options', __( 'Theme Options', 'crb' ) )
		->add_fields( array(
			Field::make( 'text', 'crb_text', 'Text Field' ),
		) );
}

add_action( 'after_setup_theme', 'crb_load' );
function crb_load() {
	require_once( 'vendor/autoload.php' );
	\Carbon_Fields\Carbon_Fields::boot();
}

Данным кодом мы не просто подключили библиотеку, но и создали контейнер для опций темы (ради примера).

  1. Откройте свой сайт по ссылке /wp-admin/ - теперь у вас есть совершенно новый раздел «Параметры темы» с текстовым полем.

Без использования composer

Если вы не хотите использовать composer для установки Carbon Fields, вы также можете использовать один из готовых zip архивов, для этого:

  1. Скачайте архив библиотеки с последней версией или проследуйте на страницу с релизами Carbon Fields, выберите свежую версию и скачайте архив самостоятельно.
  2. Разархивируйте и поместите в каталог carbon-fields в папке с темой/плагином.
  3. Добавьте в верхнюю часть вашего файла (functions.php - если тема, основной файл - если плагин) следующее:
use Carbon_Fields\Container;
use Carbon_Fields\Field;

add_action( 'carbon_fields_register_fields', 'crb_attach_theme_options' );
function crb_attach_theme_options() {
	Container::make( 'theme_options', __( 'Theme Options', 'crb' ) )
		->add_fields( array(
			Field::make( 'text', 'crb_text', 'Text Field' ),
		) );
}

add_action( 'after_setup_theme', 'crb_load' );
function crb_load() {
	require_once( 'vendor/autoload.php' );
	\Carbon_Fields\Carbon_Fields::boot();
}

Код очень похож на предыдущий.

  1. Откройте свой сайт по ссылке /wp-admin/ - теперь у вас есть совершенно новый раздел «Параметры темы» с текстовым полем.

В zip архивах используются классы PHP автозагрузчика Composer, но не требуется, чтобы у вас он был установлен.

Пользовательские файлы

Независимо от способа подключения библиотеки, нужно определить контейнеры с полями. Это можно сделать как в примерах выше, то есть сразу в функции или же подключить пользовательские файлы с определением полей.

Разработчики Carbon Fields рекомендуют использовать хук carbon_fields_register_fields. Например, код ниже можно разместить в теме (functions.php) или в коде плагина:

add_action( 'carbon_fields_register_fields', 'crb_register_custom_fields' );
function crb_register_custom_fields() {
	// путь к пользовательскому файлу определения поля (полей), измените под себя
	require_once __DIR__ . '/inc/custom-fields/post-meta.php';
}

В примере, post-meta.php - это файл (имя произвольное, как и путь к файлу), где вы можете создать свои собственные контейнеры с предпочтительными полями. Файлов может быть несколько, ограничений нет.

Любой пользовательский php файл с определением полей должен начинаться с конструкции

use Carbon_Fields\Container;
use Carbon_Fields\Field;

И только после неё описывать (создавать) произвольные поля.

Повторим пример, когда контейнер определяется сразу в функции обработчике хука:

add_action( 'carbon_fields_register_fields', 'crb_attach_theme_options' );
function crb_attach_theme_options() {
	Container::make( 'theme_options', __( 'Theme Options', 'crb' ) )
		->add_fields( array(
			Field::make( 'text', 'crb_text', 'Text Field' ),
		) );
}

Переход с версии 1.6 на 2

Carbon Fields был значительно доработан. Изменения коснулись не только функционала, но и именования элементов библиотеки. В этом руководстве перечислено, что на что поменялось, что добавилось, что удалилось.

  • Все расширенные поля должны быть переработаны.
  • Carbon Fields теперь вызывается так \Carbon_Fields\Carbon_Fields::boot();, а лучшее место для вызова хук hook_after_setup_theme. Смотрите примеры выше в разделе подключения.
  • Предупреждение: контейнеры theme_options теперь доступны только пользователям с правами manage_options и выше. Чтобы отключить это поведение, чтобы разрешить условия пользовательской возможности, используйте фильтр carbon_fields_theme_options_container_admin_only_access.

Переименованные и обновленные экшены

В списке отображены старые экшены, которые заменены новыми или вовсе удалены.
Первая строка - старый экшн, вторая строка - новый экшн.

carbon_after_save_custom_fields
carbon_fields_post_meta_container_saved
crb_container_activated
carbon_fields_container_activated
crb_field_activated
carbon_fields_field_activated
carbon_after_save_nav_menu_item
carbon_fields_nav_menu_item_container_saved
carbon_after_save_post_meta
carbon_fields_post_meta_container_saved
carbon_after_save_term_meta
carbon_fields_term_meta_container_saved
carbon_after_save_theme_options
carbon_fields_theme_options_container_saved
carbon_after_save_user_meta
carbon_fields_user_meta_container_saved
carbon_association_options_{field_name}_{type}_{subtype}
carbon_fields_association_field_options_{field_name}_{type}_{subtype}
carbon_after_register_fields
carbon_fields_fields_registered
carbon_register_fields
carbon_fields_register_fields

Переименованные и обновленные фильтры

В списке отображены старые фильтры, которые заменены новыми или вовсе удалены.
Первая строка - старый фильтр, вторая строка - новый фильтр.

carbon_template
Фильтр удален и не имеет замены.
carbon_relationship_options_*
carbon_fields_association_field_options_{name}_{type} или carbon_fields_association_field_options_{name}_{type}_{subtype} в зависимости от условий
crb_gravity_form_options
carbon_fields_gravity_form_options
carbon_association_comment_length
carbon_fields_association_field_comment_length
carbon_association_title
carbon_fields_association_field_title
carbon_association_item_label
carbon_fields_association_field_item_label
carbon_association_options
carbon_fields_association_field_options
carbon_{container_title}_button_label
carbon_fields_{container_title}_button_label
carbon_relationship_title
carbon_fields_association_field_title
carbon_relationship_item_label
carbon_fields_association_field_item_label
carbon_relationship_comment_length
carbon_fields_association_field_comment_length
carbon_relationship_options
carbon_fields_association_field_options
carbon_map_api_key
carbon_fields_map_field_api_key
carbon_map_url
carbon_fields_map_field_api_url
carbon_custom_sidebar_default_options
carbon_fields_sidebar_default_options
carbon_custom_sidebar_options
carbon_fields_sidebar_options
carbon_custom_sidebars
carbon_fields_sidebars
campusboy 1847wp-plus.ru
WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Carbon Fields - обзор плагина и начало работы 72 комментария
Полезные 2 Вопросы 2 Все
  • Dimox cайт: dimox.name

    Просто супер-плагин! Уже хочу скорее начать его использовать вместо ACF.

    Поскольку разрабатываю темы для ВП, мне будет удобнее подключать его прямо в теме, в виде библиотеки. Но весит она довольно немало - 700+ килобайт. Отсюда вопрос - можно ли удалить из библиотеки что-то необязательное, что не повлияет на работоспособность?

    Пока предполагаю следующее:

    • все, кроме php-файлов, из корня;
    • папка /tests/;
    • все файлы, кроме для русского языка, из папки /languages/.
    1
    • campusboy1847 cайт: wp-plus.ru

      Спасибо за коммент! Да, плагин меня порадовал и по сути вполне может заменить ACF. Довольно легко расширяется, если есть знания PHP и ООП в частности. Там самая главная папка - core и весит она ~220Кб. Остальное место занимают CSS, JS, тесты, переводы и подобная требуха. А в чем причина такого маниакального желания что-то удалить? smile Думаю, папку test смело можно удалить, а так же в папке languages оставить только нужные языки, в корне оставить только два php файла. В общем, как ты и сказал. Все css в папке assets не сжаты. В общем, можно сократить объем, но, повторюсь, какой в этом смысл? ACF, кстати, весит ~5Mb.

      • Dimox cайт: dimox.name

        Спасибо за ответ smile

        А в чем причина такого маниакального желания что-то удалить?

        Люблю порядок, чтобы ненужное не захламляло папки. В рамках одной темы это, в принципе, немного, но количество сверстанных тем у меня постоянно растет.

        1
    • campusboy1847 cайт: wp-plus.ru

      Изучаю код и не вижу, чтобы данные очищались. Сразу летят в базу через нативные функции WP. Не просматривал этот момент?

  • garri836 cайт: clubwp.ru

    Понравился плагин, тоже думаю заменить им ACF. А вот вопрос подскажите, как сделать поиск или фильтрацию по этим полям? Или может плагин есть какой хороший ?

    • campusboy1847 cайт: wp-plus.ru

      Я не смог понять твой вопрос. Перефразируешь?

      • popay6 cайт: clubwp.ru

        Можно как-то сделать поиск по этим доп. полям или фильтр по ним. Я имею ввиду поля прикрученные например к статье. Что бы пользователи в фронд-энде могли использовать так назвать расширенный поиск по сайту.

        Что-то типа похожего на это

        • campusboy1847 cайт: wp-plus.ru

          Возможно, ты не понял суть Carbon Fields. Он помогает сделать формы в админке и сохранить введенные данные. Данные сохраняются в обычном для WP виде. Никакой магии.

          То, что ты показал, за нас Carbon Fields не сделает. И вообще, на будущее, не стоит делать что-то для сортировок, основанное на произвольных полях - они будут работать медленно (сортировки). Такое лучше делать на таксономиях, скорее всего руками программировать подобные формы. Хотя, может и плагин есть. У меня друг все подобные сортировки делает с помощью Woocommerce. Казалось бы, плагин для магазина, но это не так, ведь товар - это произвольный тип записи, а значит с ним можно работать обычно. Ну и к Woocommerce очень много плагинов для сортировок и всё такое, чем он и пользуется, не прибегая к программированию (лишь в редких случаях).

          • popay6 cайт: clubwp.ru

            Спасибо за ответ. Надо подумать ещё 8) просто таксономия возможно не всегда уместна. Думал можно чекбоксы или радиокнопки использовать в доп полях.

            Я как раз и хочу уйти от Woocommerce за счет Carbon Fields, надо сделать каталог и как раз то что именно мне и надо. У WC когда набирается большое к-во товаров начинает тормозить.

            Надо ещё раз продумать как-то лучше реализовать всё.

            • campusboy1847 cайт: wp-plus.ru

              Если каталог большой, то произвольные поля точно не вариант smile А вот почему WC тормозит на большом количестве - не могу ответить. Ведь это простые посты. А если сделать такое же количество записей - тормозит? По идее, это одно и то же.

              • popay6 cайт: clubwp.ru

                Вот такой тест не проводил. А почему произвольные поля не вариант? Для чего они тогда вообще нужны? smile

                • campusboy1847 cайт: wp-plus.ru

                  Они нужны, чтобы делать мелкие выборки, но главная цель - хранить доп. контент, который потом в шаблоне выводить. Потому что множественная выборка по произвольным полям сама по себе медленная, об этом рассказывал ещё в своем докладе Константин Ковшенин о 7 убийцах производительности WordPress (с 13 минуты).

                  1
  • Anton Vakulenko cайт: wordpress.org/plugins/carbon-fields

    Здравствуйте.

    Я один из авторов "Carbon Fields".

    Огромное спасибо за проделанную работу и качественную статью.

    Мы очень рады, что наш плагиин Вас порадовал!

    3
    • campusboy1847 cайт: wp-plus.ru

      Приветствую! Неожиданно и приятно. Хотел написать вам чуть попозже, когда доделал бы видеоуроки с просьбой включить в описание к плагину ссылки на наши материалы. Это возможно?

      Во всяком случае, спасибо за продукт! Как видите, он оказался многим по душе (тут комменты + в чатах когда делал анонс). Жаль, что о Карбоне мало кто знает. Даже за рубежом о нем почти ничего нет (ни статей, ни видео), хорошо хоть документация на оф. сайте годная, так бы было вообще тяжко. Будем популяризировать smile Может быть Вы ещё что-то порекомендуете добавить в наши материалы?

      1
      • Anton Vakulenko cайт: wordpress.org/plugins/carbon-fields

        Привет!

        Посмотрел канал
        https://www.youtube.com/playlist?list=PLV2Ofep-dtIzgYWgu9M9vlXNjoNn5REXF
        Очень качественная работа! Спасибо.

        Также, хочу сообщить, что совсем скоро выходит официальная версия 2.0 .

        Будет очень много дополнений! Надеюсь Вы оцените!

        Мы полностью переписали front-end часть, усовершенствовали логику, и.т.д.

        Линк к бранчу: https://github.com/htmlburger/carbon-fields/tree/milestone/2_0/react-ui

        1
        Ответить4 месяца назад #
        • campusboy1847 cайт: wp-plus.ru

          Спасибо! smile Я боялся этого момента, весь мой труд теперь напрасен laugh

          1
          Ответить4 месяца назад #
          • Anton Vakulenko cайт: wordpress.org/plugins/carbon-fields

            Никогда ничего не напрасно! smile

            Наверное, самой главной особенностью есть то, что мы перешли с Backbone на React.

            1
            Ответить4 месяца назад #
        • Антон Спасибо большое за вашу работу плагин очень удобен, не во всем успел разобраться, использую только на втором проекте, и в код плагина пока не лазил ничего не расширял всего пока хватало из коробки, вчера обратил внимание на неприятную мелочь при сохранении редактора 'rich_text' почему то слетают абзацы, то есть текст выводится без 'p></p' все остальные теги в режиме text отображаются адекватно у меня все сайты в основном на иврите не знаю может это как то связанно с direction может у вас есть какие то идеи как это поправить ?

          Ответить3 месяца назад #
          • campusboy1847 cайт: wp-plus.ru

            Привет. А как Вы выводите текст такого поля?

            Ответить3 месяца назад #
            • $column_1_text = carbon_get_post_meta(get_the_ID(), 'text_column_1');
              $column_2_text = carbon_get_post_meta(get_the_ID(), 'text_column_2');

              потом echo; Простите, привет) причем параграфы выводятся если их прописать в режиме text но при следующем сохранении редактор переходит в визуальный режим и после сохранения параграфы пропадают)

              Ответить3 месяца назад #
              • campusboy1847 cайт: wp-plus.ru

                Сделайте так:

                $column_1_text = wpautop( carbon_get_post_meta(get_the_ID(), 'text_column_1') );
                $column_2_text = wpautop( carbon_get_post_meta(get_the_ID(), 'text_column_2') );
                Ответить3 месяца назад #
                • блин вот это я тупанул))) реально же просто не подумал об этом. спасибо вам большое, я тогда обнаглею и спрошу еще, положим я вывожу слайдер то есть делаю "image" в ACF есть возможность указать размер картинки то есть в админке можно сделать большое фото, точно не помню там по моему 300х300, полный размер и что то там еще, есть что тут с коробки в этом ключе, можно конечно и самому допилить просто обидно будет если это уже там есть я не нашел пока просто

                  Ответить3 месяца назад #
                  • campusboy1847 cайт: wp-plus.ru

                    Пожалуйста. Carbon Fields по умолчанию хранит только ID изображения, а дальше с этим ID делаете, что хотите. В целом, код увеличивается лишь на 1 строку, по сравнению с ACF, где выбираешь размер из админки. Ну по Вашим словам smile Я уж и не помню, как там в ACF. Я и на нем всегда брал ID и уже писал, что нужно. Люблю так, багов меньше.

                    Ответить3 месяца назад #
  • Евгений cайт: karskiy.com

    Друзья, и тем не менее, а какие проблемы с ACF? Чем он вам не угодил smile

    • campusboy1847 cайт: wp-plus.ru

      А кто сказал, что не угодил? smile Отличный плагин. Просто была цель найти бесплатный аналог, ведь не у всех есть средства приобрести его PRO версию, в которой есть repeat поля (я вот ими часто пользуюсь).

      1
    • popay6 cайт: clubwp.ru

      Пользовался ACF только из-за повторяющихся полей. Посмотрел оба этих плагина через плагин P3 в среднем ACF грузится в 3 раза дольше чем Carbon Fields. И самый большой плюс он бесплатный.

      2
  • garri836 cайт: clubwp.ru

    А эти поля можно использовать в front-end например при создании формы добавления статей, что бы пользователи могли добавлять статьи не заходя в админку?

    Ответить4 месяца назад #
    • campusboy1847 cайт: wp-plus.ru

      Такого контейнера в Carbon Fields из коробки нет. Не уверен, что это возможно, плагин не для этого.

      Ответить4 месяца назад #
  • Здравствуйте. Уже всю голову сломал в поиске ответа, надеюсь на Вашу помощь. Подскажите пожалуйста. У меня в теме папка inc, в которой лежит файл rest.php. Данный файл принимает параметры с форм и отправляет в Bitrix24 (лиды). В самом скрипте есть данные строки:

    define('CRM_HOST', 'host.bitrix24.ru'); // your CRM domain name
    define('CRM_PORT', '443'); // CRM server port
    define('CRM_PATH', '/crm/configs/import/lead.php'); // CRM server REST service path
    
    // CRM server authorization data
    define('CRM_LOGIN', 'Login'); // login of a CRM user able to manage leads
    define('CRM_PASSWORD', 'Password'); // password of a CRM user

    На сайте использую carbon fields, собственно сам вопрос: Можно каким то образом через theme_options выводить host, login и password? Пробовал вместо значения константы подставлять carbon_get_theme_option('$name'), ругается на неизвестную функцию, определял файл как шаблон, ругаться на неизвестность функции перестает но при отправке формы и обращению к данному файлу, выдает 500 ошибку. Подскажите пожалуйста, реально вообще как то перенести значение carbon_get_theme_option() в файл rest.php? Заранее большое спасибо.

    Ответить4 месяца назад #
    • campusboy1847 cайт: wp-plus.ru

      Привет. Первое, что приходит в голову- подключить минимальную среду WordPress, лишь бы работал класс wpdb. Так как значения полей из контейнера настроек темы хранятся в таблице *_options, то получить по ключу их не составит никакого труда, так как класс wpdb довольно простой и имеет нужные методы. Получаете данные из базы, вставляете в Константу.

      Ответить4 месяца назад #
      • campusboy - спасибо большое. Действительно все получилось)))))

        Ответить4 месяца назад #
        • campusboy1847 cайт: wp-plus.ru

          Рад!)) Единственное, пароль теперь хранится в базе в открытом виде.

          Ответить4 месяца назад #
          • campusboy - думаю это не самое страшное. В поисках решения проблемы, вообще натыкался на таких людей которые данные передавали в полях формы hidden.

            Ответить4 месяца назад #
  • Всем доброго дня. Уважаемый администратор, надеюсь что Вы в очередной раз мне поможете. Я создал тему с помощью carbon fields экспортирую данные темы, но theme_option экспортироваться не хочет(( Подскажите пожалуйста, возможно есть какое то решение данного вопроса?

    Ответить3 месяца назад #
    • campusboy1847 cайт: wp-plus.ru

      Привет. Что подразумевается под "экспортирую данные темы"? Как этот процесс проходит?

      Ответить3 месяца назад #
      • Обычный WP плагин экспорт импорт. Хочу перенести данные на другой сайт.

        Ответить3 месяца назад #
  • Ребят, а как заставить обрабатываться шорткоды вставленные в поля созданные этим плагином? Выводит текст шорткода и все...

    Ответить3 месяца назад #
  • vitstar20 cайт: starovoitov-v.ru @

    Добрый вечер!
    А версия 2 ставится только через composer ?

    Ответить2 месяца назад #
    • campusboy1847 cайт: wp-plus.ru

      Привет. Похоже, что да - пруф.

      Ответить2 месяца назад #
      • vitstar20 cайт: starovoitov-v.ru @

        Да я и на сайте смотрю. Просто жесть как не удобно теперь за за этого. Как подключались старые версии более логичнее и удобнее. Похоже придется на старых сидеть.

        Ответить2 месяца назад #
        • campusboy1847 cайт: wp-plus.ru

          Я думаю, что в скором времени всё станет доступно, как и раньше, ведь им нужно обновить плагин в репозитории WordPress.

          Ответить2 месяца назад #
          • Anton Vakulenko cайт: wordpress.org/plugins/carbon-fields

            Здравствуйте!

            Скороее всего мы не будем обновлять плагин до версии 2.0 в репозитории WordPress, так как Carbon Fields скорее библиотека, расчитанная на разработчиков, чем плагин для пользователей.

            Ответить2 месяца назад #
            • vitstar20 cайт: starovoitov-v.ru @

              А почему нельзя реализовать подключение плагина через тему как и в версии 1.6 ? Так как сейчас она так не ставится (Или я что то не то делал ? Нормально этот момент не прописан в документации.). И как я понял ставиться через Composer. Но это далеко не всегда удобно

              Ответить2 месяца назад #
  • Flexo
    global $single_map_data;
    $map_data_lat_max = $single_map_data['lat'];
    $map_data_lat_max = $map_data_lat_max + 0.2;
    	$arg_new = array(
    		  'posts_per_page' => -1,
    	  'post_type' => $cw_post_type,
    		  'meta_query'=>array(
    			array(
    				'key' => 'crb_location',
    				'carbon_field_property' => 'lng',
    				'compare' => '<',
    				'value' => $map_data_lat_max,
    			),
    		),
    		);
    Подключаю как плагин. Не работает вот этот код, кто может подсказать?
    Ответить2 месяца назад #

Здравствуйте, !

Ваш комментарий