Для демонстрации будет использована базовая тема из репозитория WordPress «Twenty Twenty» и плагин «Carbon Fields» 3 версии.
Создать дополнительную настройку темы для вывода изображения в конец каждой записи.
Если мы не хотим потерять все настройки при обновлении темы, то обязательно создадим дочернюю тему, для того чтоб можно было без боли использовать все ее функции и наши дополнительные в том числе.
Для этого создаем директорию child-twentytwenty
в /wp-content/themes/
Далее создадим два пока пустых файла, обязательный файл стилей: style.css
, а так же для наших дальнейших функций файл: functions.php
В итоге иерархия должна получиться следующая:
/wp-content/themes/child-twentytwenty
/wp-content/themes/child-twentytwenty/style.css
/wp-content/themes/child-twentytwenty/functions.php
Чтоб наш wordpress распознал дочернюю тему, в файл style.css
запишем:
Заходим в админку: Внешний вид -> Темы и активируем нашу созданную дочернюю тему, на этом установка дочерней темы закончена.
Нам понадобиться архив плагина, скачиваем свежую версию с официального репозитория на github, для этого переходим по ссылке: Carbon Fields Release Archive
Заходим в админку: Плагины -> Добавить новый и устанавливаем скачанный архив:
Активируем его:
Далее убеждаемся что плагин установлен и активирован:
Следующим шагом будет интересней, теперь нам нужно поработать с файлом: functions.php
Будьте внимательны что Container::make
принимает 3 параметра, а именно:
$raw_type - 'theme_options'
( тип контейнера )
$id - 'theme-options'
( уникальный идентификатор контейнера ) если 3 параметр не указан, то он же будет являться $name
$name - 'Настройки темы'
( имя которое выводиться в админке ), так же можно использовать функции локализации например __()
Все сохраняем и обновляем страницу админки, если все сделали правильно, то в админ-баре вы увидите наши созданные настройки:
Любуемся своей работой минут 5 и загружаем нашу первую картинку:
Осталось добавить функцию для вывода изображения на фронт, запишем в файл:
Вот и всё, итог вы видели в начале статьи.
Далее будет рассмотрен вариант установки Carbon Fields в нашу дочернюю тему, чтоб пользователь не смог его отключить или удалить по неосторожности из общего списка плагинов.
Для примера будет использована программа эмулятор консоли ConEmu, но можно использовать любую программу которая поддерживает команды composer.
Для удобства использования плагина и чтоб не засорять нашу тему создадим директорию и назовем ее plugin
В итоге иерархия должна получиться следующая:
/wp-content/themes/child-twentytwenty
/wp-content/themes/child-twentytwenty/plugin
/wp-content/themes/child-twentytwenty/style.css
/wp-content/themes/child-twentytwenty/functions.php
Открываем консоль и заходим в нашу директорию/wp-content/themes/child-twentytwenty/plugin
туда и будем устанавливать Carbon Fields.
Далее набираем в команду:
Нажимаем Enter
В итоге иерархия должна получиться следующая:
/wp-content/themes/child-twentytwenty
/wp-content/themes/child-twentytwenty/plugin
/wp-content/themes/child-twentytwenty/plugin/vendor
/wp-content/themes/child-twentytwenty/plugin/composer.json
/wp-content/themes/child-twentytwenty/plugin/composer.lock
/wp-content/themes/child-twentytwenty/style.css
/wp-content/themes/child-twentytwenty/functions.php
Убедимся что все загрузилось. Tеперь нам нужно подключить Carbon Fields из директории plugin
, для этого открываем файл functions.php
и добавим в него:
Теперь можем работать точно так же как и в первом варианте.
Полный код
Зачем нужна установка через composer и отличие между подключением.
Как вы успели заметить что различие в небольшом количестве строк кода, а так же, то что при таком подходе плагин не будет добавлен в список всех плагинов в админку, тем самым избавляя нас как разработчика темы от не компетентных администраторов сайта.
Это всё отлично, но что если нам нужно к примеру весь наш код плагина и его функции перенести в другую тему, то тут решение есть.
Для этого создаем свой отдельный плагин и устанавливаем Carbon Fields так же с использованием composer, за исключением того, что загружать его нужно в директорию своего плагина, а не темы и тогда его можно будет легко переносить из проекта в проект не зависимо от темы.
Устанавливать в свой плагин Carbon Fields мало чем отличается от предыдущего варианта, но все же покажу для тех, кто не понял как именно это сделать.
Для начала нужно подготовить все необходимое. Создадим директорию в /wp-content/plugins/
и назовем её my-carbon-fields
, а так же главный файл в котором и будем подключать Carbon Fields и назовем его my-carbon-fields.php
и никак иначе.
Важно!
Именовать главный файл плагина обязательно нужно с тем же именем как и его директория или ещё разрешается именовать как index.php
, но я придерживаюсь правил хорошего тона разработки на wordpress и так же вам рекомендую приучать себя их соблюдать 😉
В итоге иерархия должна получиться следующая:
/wp-content/plugins/my-carbon-fields
/wp-content/plugins/my-carbon-fields/my-carbon-fields.php
Чтоб наш wordpress его распознал, запишем минимальный заголовок в файл my-carbon-fields.php
Полный список можно посмотреть тут: Создание заголовков плагина
Теперь у нас свой отдельный плагин в общем списке
Активируем его, затем открываем консоль и заходим в директорию плагина/wp-content/plugins/my-carbon-fields
туда и будем устанавливать Carbon Fields.
Далее набираем всё ту же команду команду:
Нажимаем Enter
В итоге иерархия должна получиться следующая:
/wp-content/plugins/my-carbon-fields
/wp-content/plugins/my-carbon-fields/vendor
/wp-content/plugins/my-carbon-fields/composer.json
/wp-content/plugins/my-carbon-fields/composer.lock
/wp-content/plugins/my-carbon-fields/my-carbon-fields.php
Убедимся что все загрузилось. Tеперь нам нужно подключить Carbon Fields из директории нашего плагина для этого открываем файл my-carbon-fields.php
и добавим в него:
Для того чтоб все работало из нашего плагина, запишем все те же функции из нашей задачи в файл
Вот и всё, теперь у нас есть свой отдельный плагин, который можно будет переносить из проекта в проект.
Огромне спасибо, очен все подробно описано, продолжайте в том же духе! Хотелось бы еще по больше про Carbon Fields узнать, функции там всякие, может про complex рвскажете и галлереи.
Заголовок думаю стоит поменять. В статье рассматривается только один способ установки, сама статься отличная, все подробно и наглядно.