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 после обновления содержимого.

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