Я настраивал WordPress и получение необходимых плагинов через композитор вот уже несколько лет он работает отлично, но я перестал пытаться взломать или быть хитрым, когда дело доходит до установки плагинов, которые не знают, как использовать WP_SITEURL
а также PaaS, который не поддерживает нестандартную структуру папок WordPress.
Поэтому мне интересно, смогу ли я по-прежнему использовать composer для настройки WordPress-ядра (или любого другого пакета), но я хочу, чтобы он был установлен первым.
Скажи в своем composer.json
У вас есть следующие пакеты:
{
"name": "test/composer-install-order",
"type": "project",
"repositories": [
{ "type": "composer", "url": "https://wpackagist.org" }
],
"require": {
"php": ">=7.2",
"composer/installers": "~1.6.0",
"johnpbloch/wordpress": "^4.9",
"wpackagist-plugin/better-search-replace": "*",
"wpackagist-plugin/bugherd": "*",
"wpackagist-plugin/disable-emojis": "*"},
"extra": {
"installer-paths": {
"public_html/wp-content/plugins/{$name}/": ["type:wordpress-plugin"],
"public_html/wp-content/themes/{$name}/": ["type:wordpress-theme"]
},
"wordpress-install-dir": "public_html"},
"config": {
"preferred-install": "dist",
"optimize-autoloader": true,
"sort-packages": true
}
}
composer.json
выше говорит, что вам нужно 3 плагина: лучше-искать-заменить, гадить и отключить эмоджи
Но когда вы нажмете composer install
:
➜ temp1 composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 7 installs, 0 updates, 0 removals
- Installing composer/installers (v1.6.0): Loading from cache
- Installing johnpbloch/wordpress-core-installer (1.0.0.2): Loading from cache
- Installing wpackagist-plugin/better-search-replace (1.3.2): Loading from cache
- Installing wpackagist-plugin/bugherd (1.0.0.0): Loading from cache
- Installing johnpbloch/wordpress-core (4.9.8): Loading from cache
- Installing johnpbloch/wordpress (4.9.8): Loading from cache
- Installing wpackagist-plugin/disable-emojis (1.7.2): Loading from cache
Writing lock file
Generating optimized autoload files
➜ temp1
Вы получите только 1 плагин внутри wp-content/plugins
папка. Причина этого заключается в том, что при проверке печати выше, 2 плагина better-search-replace
а также bugherd
где установлен первый ДО файлов ядра WordPress johnpbloch/wordpress
, Так даже composer
извлек эти 2 пакета плагинов в правильную папку, johnpbloch/wordpress
удалил их, потому что перезаписал wp-content/plugins
папка.
Единственный способ для этого, если я установлю johnpbloch/wordpress
сначала до плагинов, но я не знаю, возможно ли это, так как композитор установить через composer.lock
содержание.
Надеюсь, кто-нибудь может помочь.
С Уважением,
Сопровождающий здесь. Как и предполагалось, OP открыл вопрос здесь: https://github.com/johnpbloch/wordpress-core/issues/14
Я хотел бы сослаться на него (и скопировать его ниже) здесь, чтобы, если кто-нибудь столкнется с этой проблемой в будущем, был ответ, который пролил бы некоторый свет на то, что происходит. 🙂
Ответ скопирован с вопроса github:
Привет Волк,
Спасибо за вопрос. Основная проблема здесь — конфликт
между тем, как работает Composer, и тем, как работает WordPress по умолчанию.Если вы хотите использовать Composer для управления ядром WordPress в качестве зависимого
пакет, вы должны использовать конкретный нестандартный вариант установки
для WordPress, в котором ядро установлено в подкаталоге и
Каталог wp-content находится за пределами основного пакета.
Rarst имеет отличный микросайт, детализирующий оптимальное
настроить. Вы также можете проверить мой образец
WordPress стартовый пакет
пакет за
вдохновение. Вы можете прочитать больше о установка ядра в
подкаталог
а также перемещение
WP-содержание
на кодексе.Если вы заинтересованы в чтении немного больше о аргументации
этот вопрос, пожалуйста, смотрите эта тема в установщике
хранилище
в котором тема получает немного более длительное обращение.Надеюсь, это поможет!
johnpbloch/wordpress
удалил их, потому что перезаписалwp-content/plugins
папка
Когда пакеты начинают вести себя так, я не знаю, чего люди больше ожидают. Я бы порекомендовал вам подать проблему или запрос на изменение, чтобы изменить это поведение, потому что в лучшем случае оно кажется сомнительным, а если честно, просто злонамеренным.
Вы уверены, что это не ошибка неправильной конфигурации с вашей стороны в отношении путей плагинов или путей установщика WordPress?