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

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

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, выберите свежую версию и скачайте архив самостоятельно.
    2a. Установка как библиотека. Разархивируйте и поместите каталог carbon-fields в папку с темой/плагином и подключите файл carbon-fields-plugin.php.
    2b. Установка как плагин. Загрузите скачанный архив в разделе Плагины -> Установить новый -> Загрузить плагин и активируйте.
  2. Добавьте в верхнюю часть вашего файла (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 2657youtube.com/c/wpplus
Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 5064
Carbon Fields 1.6 — обзор плагина и начало работы 90 комментов
Полезные 4 Вопросы 3 Все
  • Dimox

    Поставил сегодня Carbon Fields 2.0.4 и обнаружил, что некоторые строки не русифицировались, хотя перевод есть в файле carbon-fields-ru_RU.po. Например, у комплексного поля вот так:

    Кто-нибудь столкнулся с этим же?

    • campusboy2657 cайт: www.youtube.com/c/wpplus

      У меня та же проблема. Может потому что строки не 1 к 1? Во всяком случае какими бы я их одинаковыми ни делал - всё равно не переводится. Пока не пойму в чем дело.

      • campusboy2657 cайт: www.youtube.com/c/wpplus

        Вопрос решен. На скришоте выше видно, что у фразы стоит метка fuzzy, то есть "Перевод требует проверки" и в POedit такие фразы выделены оранжевым цветом и имеют специальную кнопку при выделении:

        Такие фразы при компилировании в MO не учитываются. Если убрать проверку и сохранить, то всё нормально становится. Но не в описанном случае. Программа ругается, так как в исходной фразе есть "переменная" %s, а в переводе её нет, что, по её словам, может привести к проблемам при отображении в теме/плагине, но всё равно сохраняет. В нашем случае, я проигнорировал ошибку, проверил - фраза перевелась и ошибок нет. Но затем для подстраховки сделал как надо, а именно вот так:

        %s пока нет. Нажмите <a href="#">здесь</a>, чтобы добавить первый элемент.

        Ну и полю указал метод с параметрами:

        ->setup_labels( [
        	'plural_name'   => 'Отделов',
        	'singular_name' => 'ещё отдел',
        ] )

        Получил:

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

        Итог

        • Обращайте внимание на метку fuzzy.
        • Используйте метод setup_labels() у комплексного поля, чтобы задать индивидуальные лейблы при надобности.
        2
        • Dimox

          Спасибо за полезную информацию!

          То есть, получается, что придется самому редактировать po-файл? Может быть стоит написать разработчикам issue по этому поводу?

          • campusboy2657 cайт: www.youtube.com/c/wpplus

            Пожалуйста. А что я им скажу? Перевод есть, просто помечен, как "не проверен". Я думаю у них других проблем пока первоочередных хватает.

            придется самому редактировать po-файл?

            Не вижу как бы проблем с этим smile У меня это заняло ну минуту где-то, не больше.

            • Dimox

              А что я им скажу?

              Я бы и сам написал, но тоже не знаю, что именно.

              Не вижу как бы проблем с этим

              Отредактировать не сложно, просто это придется делать, возможно, при каждом обновлении библиотеки. В этом и неудобство.

              • campusboy2657 cайт: www.youtube.com/c/wpplus

                Отредактировать не сложно, просто это придется делать, возможно, при каждом обновлении библиотеки.

                Да можно пул реквест сделать и всё - они его примут и порядок. Я пока этого не делаю, что дел по горло. Как разгребусь, можно будет попушить и покоммитить вдоволь smile Не паханное поле.

  • Евгений

    Подскажите пожалуйста можно ли сделать галерею как в ACF?
    Ну или просто мульти выбор изображений?

    P.S. это было бы удобно для реализации галереи.

    • campusboy2657 cайт: www.youtube.com/c/wpplus

      Приветствую. Можно сделать через комплексные поля, что да - не очень удобно под это. Разработчики, судя по issue на github, в будущих обновлениях добавят это поле.

      2
  • Roman523 cайт: forweb52.ru

    Приветствую!
    Ставлю последнюю версию как не плагин.
    Скачиваю тут carbonfields.net/release-archive ( по инструкции carbonfields.net/docs/carbon-fields-quickstart/?crb_version=2-0-0 )
    В итоге папка весит 4.3 мб. Что можно поудалять такого не нужного, чтобы все это дело весило поменьше?
    Если скачивать плагин например с оф сайта wp, то он весит 1 мб.
    А тут библиотека почему то больше весит.

    • campusboy2657 cайт: www.youtube.com/c/wpplus

      Привет. Потому что в репозитории плагин основан на версии 1.6, а библиотека уже стала версии 2.0.

      Если отвечать прямо на вопрос, то я не заметил там чего-то лишнего и не экспериментировал с удалением чего-либо. Даже не особо представляю, зачем это может понадобиться. Самым большим файлом является carbon.vendor.js - 2Мб.

      1
      • Roman523 cайт: forweb52.ru

        Окей, понял, спасибо за ответ.
        Просто я подумал, может я чего то не понял при подключении, или чего не то скачал, если библиотека весит в 4 раза больше чем плагин scratch_one-s_head . А оказывается, что там старая версия плагина.

    • Dimox

      Я задался тем же вопросом, когда установил данную версию, так как для меня это важно. И даже спросил у разработчиков.

      В итоге удалил следующее:

      1) Из папки \carbon-fields\vendor\htmlburger\carbon-fields\assets\dist\ эти файлы:

      carbon.boot.js
      carbon.core.js
      carbon.vendor.js
      carbon.core.json
      carbon.core.min.json
      carbon.vendor.json
      carbon.vendor.min.json

      2) Из папки \carbon-fields\vendor\htmlburger\carbon-fields\ эти:

      .babelrc
      postcss.config.js
      webpack.base.js
      webpack.boot.js
      webpack.core.js
      webpack.vendor.js
      composer.json
      package.json
      package-lock.json
      README.md
      license.txt

      То есть все, кроме файла config.php.

      3) Из папки \carbon-fields\vendor\htmlburger\carbon-fields\languages\ все, кроме RU.

      В результате вес уменьшился примерно на 3.1 мегабайта.

      3
  • Приветствую!
    Подскажите, поставил библиотеку 2.
    Всё работает. Не получается подключить пользовательские файлы.
    Подключаю как показано, меняя директорию на свою, сайт выпадает в 500 ошибку и всё.
    Файл положил в папку темы. Подключаю в functions.php :

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

    В post_meta.php

    <?php
    use Carbon_Fields\Container;
    use Carbon_Fields\Field;
    
    Container::make('post_meta', 'Настройки постов')
      ->show_on_post_type('page')
    	->add_fields(array(
    		Field::make('text', 'testtext1', 'Тестовое поле 1'),
    		Field::make('text', 'testtext2', 'Тестовое поле 2'),
    	));
    ?>

    Подскажите,пожалуйста, в чём ошибка?

    Ответить3 месяца назад #
    • campusboy2657 cайт: www.youtube.com/c/wpplus

      Привет. Включи дебаг и смотри, какую ошибку выдаёт - это же просто определить. Как подключал саму библиотеку? Там 2 версия подключается по другому чутка, чем 1.6

      1
      Ответить3 месяца назад #
      • Подключал:

        1. Скачал последнюю версию и залил папку в папку темы.
        2. в functions.php
        /* подключаем библиотеку Carbon_Fields */
        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( 'carbon-fields/vendor/autoload.php' );
        	\Carbon_Fields\Carbon_Fields::boot();
        }

        Сейчас разберусь и включу дебаг.) Спасибо!
        Сообщения об ответе и новых комментариях почему-то не пришло. Или может ещё придёт.

        Ответить3 месяца назад #
        • campusboy2657 cайт: www.youtube.com/c/wpplus

          Путь довольно интересный в require_once smile надеюсь он реально такой

          2
          Ответить3 месяца назад #
          • папка carbon-fields лежит в папке темы.
            .../themes/my_theme/carbon-fields/

            Всё заработало. @campusboy, спасибо!

            Открыл для меня такую хорошую штуку как дебаг.)

            Там слеша не хватало перед файлом, то видимо кодировка слетала, то подключал дефолтный файл, в котором не убирал первую строку.

            Всё получилось. Буду разбираться дальше.)

            Спасибо сайту, автору и активным пользователям!)

            Ответить3 месяца назад #
  • влад

    Почему Carbon Fields? Объективно.

    Ответитьмесяц назад #
  • Всем привет. Всех с новым годом и рождеством. Нашел такое расширение для второй версии carbon field - Carbon Field Icon (https://github.com/htmlburger/carbon-field-icon), никак не могу разобраться с его установкой((( Подскажите пожалуйста, кто-нибудь устанавливал его? Заранее спасибо.

    Ответитьмесяц назад #
    • campusboy2657 cайт: www.youtube.com/c/wpplus

      Привет. Судя по всему через Composer. Он просто докинет новые файлы в папку с библиотекой.

      Ответитьмесяц назад #
  • @ css6

    Здравствуйте. Не получается подключить плагин. Скачала ахив, разархивировала его в папку темы, скопировала код с оф сайта в functions.php. В консоль админки вообще не попасть. Помогите, пожалуйста.

    Ответить21 день назад #
    • campusboy2657 cайт: www.youtube.com/c/wpplus

      Здравствуйте. Показывайте код, который использовали, а также какую версию CF поставили, откуда. Всё до миллиграмма и в точности - разберёмся ok

      1
      Ответить21 день назад #
      • @ css6

        Чего-то оповещения на мыло не приходят. Спасибо за готовность помочь! В общем, я уже немного изменила код. Теперь админка, ура-ура, работает. Но никакого раздела "параметры темы" и нового текстого поля не случилось. Значиться так: сайт на локалке Open Server 5.2.2, вп последний, сф последний на сегодня – 2.0.1 кажется, вот откуда скачивала, не помню, но, кажется, с чего-то официального, но не с гитхаба, там ещё была пара версий: эта и предыдущая. Папку с библиотекой положила в папку тема\inc. В functions.php вставила код:

        add_action( 'carbon_fields_register_fields', 'crb_register_custom_fields' );
        function crb_register_custom_fields() {
        	require_once __DIR__ . 'cf-post.php';
        }

        В корне темы создала файл cf-post.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' ),
        		) );
        }
        
        add_action( 'after_setup_theme', 'crb_load' );
        function crb_load() {
        	require_once( '/inc/carbon-fields/autoload.php' );
        	\Carbon_Fields\Carbon_Fields::boot();
        }
        ?>

        Дела... Кажись, я не то скачала. Сейчас скачаю с гитхаба. Скачала, но там нет autoload.php в папке vendor. Как его без комозера то поставить?

        Ответить21 день назад #
        • campusboy2657 cайт: www.youtube.com/c/wpplus

          Я 2 версией особо пока не пользовался, вот на днях поставил, у человека была тоже проблема. И я тоже не сразу запустил. Прочитайте инструкцию с оф. сайта. Начните с варианта "Without Composer", то есть:

          • Скачайте архив по ссылке в инструкции;
          • Этот архив закачайте и установите как плагин (в админке это делается), активируйте;
          • Вставьте код из инструкции в functions.php.
          • Проверьте результат.

          У меня получилось. Раньше установка была другой. Они постоянно меняют эту инструкцию, я не успеваю следить и править тут.

          Заметьте, что статьи по CF на этом сайте написаны к старой версии 1.6. Хоть на 80% часть информации актуальна, всё же крайне рекомендуется смотреть в оф. документацию по новой версии.

          P.S.: А Вы точно подписались на ветку сообщений и указали корректный email адрес? Мне вот пришло уведомление. И вообще рекомендую зарегистрироваться на сайте и стать частью нашего сообщества smile

          1
          Ответить21 день назад #
          • @ css6

            Спасибо! Заодно я нашла откуда скачивала. ) Вот отсюда: https://carbonfields.net/release-archive/. И версия, соответственно, 2.1.1.
            Но, странное дело, заходя позже, я не видела раздела without composer. А с таким способом можно как-то разделить functions.php и файл, в котором будут жить доп. поля?

            Заодно спрошу. Я на этот плагин обратила внимание, потому что у меня переезд сайта с getsimple на wp. А там у меня организована удобная заморока со всякими доп. полями. Часть функционала уже реализована штатными средствами вп. Но есть несколько фишек, которые я вообще пока не знаю как реализовать. Там есть спектакли, которые периодически становятся как бы ивентами. Причём, один и тот же спектакль одновременно может быть несколькими ивентами в разных местах и с разными датами. Бесконечно клонировать записи в вп с одинаковым большим текстом, галереями и тп было бы странно. На старом сайте всё это реализовано через доп. поля, плюс есть для каждого адреса своя страница с полным адресом, картой и иногда схемой зала. Я просто выбирала в выкидушке название адреса, вставляла рядом дату, и всё это добро автоматом появлялось на странице спектакля и в виджете со ссылками на страницу адреса и страницу спектакля. Зависило от заполненности хотя бы одного поля с датой. Вот такое мне нужно как-то изобразить в вп. О продаже билетов речь не идёт, поковырявшись с неделю, я похоронила эту идею, ввиду невозможности её реализации. хотя бы сделать как на старом сайте, и то хлеб будет. С этим плагином такое возможно?

            Простите за простыню. )

            Ответить21 день назад #
            • campusboy2657 cайт: www.youtube.com/c/wpplus

              А с таким способом можно как-то разделить functions.php и файл, в котором будут жить доп. поля?

              Я не совсем понял Ваш вопрос. Могу лишь сказать, что главное активировать плагин, чтобы ядро CF было активно. А то, куда вы вставите и где будете содержать код регистрации контейнеров с полями - не важно. Главное соблюдать правило использовать:

              use Carbon_Fields\Container;
              use Carbon_Fields\Field;

              В начале файла или хотя бы перед регистрацией контейнеров с полями. Но лучше в начале файла пожалуй + потом код регистрации. И больше ничего smile Чтоб чистенько всё было.

              Насчёт вашей "хотелки". Я её прочёл до конца, честно-честно. Но вот так с ходу на такие вопросы я отвечать не умею, так как ответ будет пальцем в небо. Надо хорошо разобраться в задаче, чтобы дать хороший ответ. А это время, которого не так много. Если Вы всё подобное сделали в getsimple через произвольные поля, то и на WP сможете, ведь тут аналогично, я думаю. Но кодить надо уметь. Вы умеете? smile

              Ну и напоследок - не воспринимайте плагины для работы с произвольными полями (ACF, CF, Meta Box и другие), как плагины, решающие какую-то логику в вашем приложении. Они просто лишь дают удобный интерфейс (выбор фото, файла, повторяющиеся поля, выбор поста или таксономии) для записи и хранения информации в произвольных полях. Всё. Логику Вы пищите уже сами на основе сохраненной информации.

              Я думаю, что у Вас всё получится. Успехов!

              P.S.: Почему решили уйти с getsimple?

              1
              Ответить20 дней назад #
              • А то, куда вы вставите и где будете содержать код регистрации контейнеров с полями - не важно.
                Просто в коде с оф сайта уже есть код для доп поля. И его, судя по гайду, нужно вставить в functions.php. А как сделать так, чтоб в functions.php остались только инициализация библиотеки и файлов с кодом доп полей ничего нет.

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

                Почему решили уйти с getsimple?
                Там совсем трагическая ситуация. Раньше сайт жил на комтет, и всё было просто замечательно. Потом возникли обстоятельства, и сайт перевезли на бигет. Теперь там планомерно всё отваливается. Я уже задолбалась его чинить, при том, что я его перед поломкой вообще не трогаю: не изменяю библиотеки скриптов, не правлю код, то есть, в админку или фтп не захожу от слова совсем. Поэтому и что чинить, не совсем представляю, даже тупая перезаливка движка не помогает. Что там происходит, пока меня нет, я хз. Вирусов нет. Сейчас, вон, всё от вк отвалилось: комменты, виджет. Мне думается, что вп будет работать стабильнее. Да и сайт уже перерос getsimple. Но вообще, движок симпатичный: быстрый, удобный, хорошо расширяемый в пределах разумного. А уж переезжать с ним – одно удовольствие. Перекинул файлы и всё. А с вп квест с переездом у меня ещё впереди. Я уже заранее мандражирую. )

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

                PS Чего-то не получается цитирование изобразить. Вставляется лишь одна открывающая галка, закрывашки нет, что выполняет её роль, не догадалась, галки не подошли. Соответственно, цитата не закрывается.

                Ответить20 дней назад #
          • Зарегистрировалась ) Ваше сообщество замечательное. Самый актуальный и живой не оф сайт по вп в ру сегменте.

            Ответить21 день назад #
            • campusboy2657 cайт: www.youtube.com/c/wpplus

              Спасибо! Ну как живой... как видите не так много людей отвечают другим тут пишут в комментах или вопросах... единицы. Все ушли на фронт (в чатах сидят, на сайтах людям лень переписываться). Но не стоит унывать никому smile На понятные и интересные комментарии/вопросы актив сайта старается ответить.

              2
              Ответить20 дней назад #
              • Получилось! laugh Спасибо за помощь! Только я в functions.php добавила

                require_once( 'inc/fields.php' );

                И уже в этом файле подключила CF.

                Ответить20 дней назад #
                • campusboy2657 cайт: www.youtube.com/c/wpplus

                  Я тоже так делаю. Думал, что смог донести мысль изначально. Ну ничего, зато теперь законно запомнили, как можно сделать smile Я знал, что получится! Кто реально что-то хочет - всегда получается.

                  1
                  Ответить20 дней назад #
  • Pavel

    Проверка выдает ошибку
    WARNING: Found a translation function that is missing a text-domain. Function __, with the arguments 'F j, Y'
    WARNING: Found a translation function that has an incorrect number of arguments. Function __, with the arguments 'The new version of Carbon Fields is a major update. Please make sure you have a full backup before updating and test any add-ons or custom functionality.', \n, 'Developers should review the upgrade guide on %1$s.'
    WARNING: Found a translation function that has an incorrect number of arguments. Function __, with the arguments 'The new version of Carbon Fields is a major update. Please make sure you have a full backup before updating and test any add-ons or custom functionality.', \n, 'Developers should review the upgrade guide on %1$s.', 'carbon-fields'

    Ответить20 дней назад #

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

Ваш комментарий
Предпросмотр