Использование NextGEN Gallery с Bedrock

Недавно мы решили перенести все наши старые веб-сайты WordPress на Bedrock . Если вы раньше не использовали Bedrock, вы должны знать, что это в основном более прочная основа, которая идет с лучшей структурой проекта, интеграцией Composer, простыми развертываниями с использованием Capistrano и т. Д. Мы используем его практически на всех наших новых веб-сайтах WordPress.

Мы столкнулись с проблемой, связанной с плагином NextGEN Gallery, который на данный момент несовместим с Bedrock . К сожалению, один из веб-сайтов наших клиентов, а именно Scoala59.ro, использует его, и мы не смогли найти простой способ его заменить. Есть несколько альтернатив, но ни одна из них не совместима с Bedrock и не предлагает простой способ импорта изображений и альбомов. Если вам известен такой плагин, дайте нам знать :).

Несовместимость связана с тем, как плагин хранит свои фотографии. Точнее, он использует константу WP_HOME вместо WP_SITEURL, как описано здесь . Поскольку мы используем bedrock-capistrano для развертывания , легко настроить папку плагина как общую в файле deploy.rb :

set :linked_dirs , fetch( :linked_dirs , []).push( 'web/app/uploads' ).push( 'web/wp/wp-content/gallery' )
Язык кода: Ruby ( рубиновый )

Таким образом, помимо обычного «web / app / uploads», мы также добавляем папку «web / wp / wp-content / gallery». Обычно этого должно быть достаточно, только папка «web / wp» - это то место, куда Composer загружает и устанавливает WordPress, в основном перезаписывая нашу новую папку. Уловка состоит в том, чтобы создать его снова, когда Composer закончит работу:

# Create symlinks again because Composer removes our web/wp/wp-content/gallery symlink. namespace :deploy do task :fix_symlinks do Rake::Task[ 'deploy:symlink:linked_dirs' ].reenable # Allow the task to be run again Rake::Task[ 'deploy:symlink:linked_dirs' ].invoke end end after 'deploy:finished' , 'deploy:fix_symlinks'
Язык кода: Ruby ( рубиновый )

Вот и все! Потребовалось время, чтобы разобраться, но теперь NextGEN Gallery успешно работает вместе с Bedrock.