Composer/WordPress: каталог wp-content должен или не должен быть зафиксирован
Итак, я недавно начал использовать Composer с WordPress на основе этого учебника.
Это мой файл composer.json
:
{
"repositories": [
{
"type": "package",
"package": {
"name": "wordpress",
"type": "webroot",
"version": "4.3",
"dist": {
"type": "zip",
"url": "https://github.com/WordPress/WordPress/archive/4.3.zip"
},
"require" : {
"fancyguy/webroot-installer": "1.0.0"
}
}
}
],
"require": {
"wordpress": "4.*",
"fancyguy/webroot-installer": "1.0.0"
},
"extra": {
"webroot-dir": "public/wp",
"webroot-package": "wordpress"
}
}
Он отлично работал, я получил эту структуру папок:
![введите описание изображения здесь]()
Как уже упоминалось в учебнике, я скопировал index.php
, wp-config.php
и каталог wp-content
вне каталога wp
и заменил пути.
Все работало до этого момента:
Относительно ведения домашнего хозяйства с помощью инструмента управления исходным кодом. Вы должны игнорировать файл composer.phar и общедоступный/wp-каталог. Все остальное можно зафиксировать и нажать.
Так кажется, что помимо папки public/wp
все может быть зафиксировано и нажато. (включая папку wp-content)
Вот что я не понимаю. Мы должны зафиксировать/нажать каталог wp-content
, потому что у него другое место, которое оно использует, но в то же время в этой папке wp-content
содержится папка plugins
и themes
, в которой наши плагины и темы будут добавлен с использованием композитора, который не должен быть зафиксирован/нажат правильно?
Плагины и темы будут добавлены в среду разработки также с использованием композитора, поэтому мы не должны их комментировать, но они находятся в каталоге wp-content
, который должен быть зафиксирован?
В другой аналогичный учебник wp-content
установлен в файл .gitignore
, что означает, что его нельзя выполнять/нажимать. Но если это так, кто будет перемещать (и как) каталог wp-content
снаружи wp
в среду разработки.
Может кто-нибудь прояснить этот аспект?
Ответы
Ответ 1
Замечательно, что вы wp-content
разделились в отдельный каталог.
Лично я фиксирую только элементы в wp-content
, которые являются частью текущего проекта. Другой способ подумать об этом - это совершить все, что не добавлено в Composer.
Например, вы можете работать с сайтом с родительской темой, в которую вы входите с Composer, и оставите немодифицированную и дочернюю тему, в которую вы вносите изменения.
В этом примере дочерняя тема должна быть зафиксирована, а родительская тема игнорируется, так как вы изменяете код только в дочерней теме.
Файл .gitignore
будет выглядеть следующим образом:
# Ignore everything in wp-content
wp-content/*
# Do not ignore the themes directory. This is needed to add the child theme (below)
!wp-content/themes
# Ignore all of the themes directory contents, including the parent theme
wp-content/themes/*
# Do not ignore the child theme
!wp-content/themes/child-theme/
Я обычно делаю то же самое с плагинами. Любые плагины, вложенные в Composer, игнорируются, но плагины, специфичные для текущего проекта, которые вы не будете использовать в другом месте, выполняются.
Надеюсь, что это поможет.
Ответ 2
Идея: ничего не генерируется версией.
кто будет перемещать (и как) каталог wp-content
снаружи wp
в среде разработки.
Это проблема развертывания, часть управления выпуском.
Это означает, что крюк после приема на стороне сервера будет отвечать за создание правильного контента на основе вновь выдвинутых источников и перемещать/копировать папку wp-content
после обновления содержимого.
Общий момент: обычно отличает управление версиями от развертывания. Перемещение содержимого - это что-то сделать при развертывании, во время управления выпуском, например, с помощью крючка, который переместит нужные ресурсы в нужное место.