wp scaffold vccw 使ってテーマまで一気に準備しちゃう

【メモ】【更新】vccwでvagrant up後にサクッと新規テーマを作成してオレオレmixin追加する

これでまぁまぁ満足してたんだけど、

provision-post.shとwp scaffold vccwのデフォルトのsite.ymlをカスタマイズしたら vagrant up 以外の手順をなくせる気がしますのでぜひ挑戦を!

というコメントを宮さんからもらいました。

https://www.facebook.com/marushu/posts/10214921578817999?comment_id=10214924063280109&comment_tracking=%7B%22tn%22%3A%22R%22%7D

wp scaffold vccwとは

vccw-team/scaffold-vccw: WP-CLI command that generates a new VCCW.

This is a WP-CLI command that generates a VCCW envirionment.

ということで、VCCW環境をコマンド一発で用意できるというもの。

provision-post.shとは

v3からは ~/.vccw/provision-post.sh というファイルを設置するとそのシェルスクリプトも自動的に実行されるようになりました。

なお、このシェルスクリプトは、ゲストマシン内で実行されますのでパス等にご注意ください。

ということで、vagrant up後に実行されるスクリプトです。

この2つを組み合わせて,

  • wp sacaffold vccw でVCCW環境を作った後
  • オレオレテーマを作成し、準備OKにする

という流れを作ります。

~/.wp-cli/vccw.yml.mustache を作成

Customize your default site.yml を参照。

vccw.yml.mustacheは、普段使うsite.ymlをコピーして作成。

[code]
# encoding: utf-8
# vim: ft=ruby expandtab shiftwidth=2 tabstop=2

#
# General Settings
#
wp_box: vccw-team/xenial64

#
# Virtual Machine Settings
#
memory: 1024
cpus: 2

#
# Network Settings
#
hostname: {{ host }}
ip: {{ ip }}

#
# WordPress Settings
#
version: latest
lang: {{ lang }}
title: Welcome to the VCCW
multisite: false
rewrite_structure: /archives/%post_id%

#
# WordPress Path
#
wp_siteurl: ” # Path to the WP_SITEURL like "wp"
wp_home: ” # Path to the WP_HOME like "wp"

#
# WordPress User
#
admin_user: admin
admin_pass: admin
admin_email: vccw@example.com

#
# WordPress Database
#
db_prefix: wp_
db_host: {{ ip }}
db_name: wordpress
db_user: wordpress
db_pass: wordpress

#
# WordPress Default Plugins
# Plugin’s slug or url to the plugin’s slug.
#
plugins: []

#
# WordPress Default Theme
# Theme’s slug or url to the theme’s .zip.
#
theme: ”

#
# WordPress Options
#
options:
blogdescription: Hello VCCW.

#
# WordPress Multisite Options
#
multisite_options: {}

#
# The values of wp-config.php
#
force_ssl_admin: false
wp_debug: true
savequeries: false

gitignore: https://raw.githubusercontent.com/github/gitignore/master/WordPress.gitignore

#
# Addtional PHP code in the wp-config.php
#
extra_wp_config: |
// Addtional PHP code in the wp-config.php
// These lines are inserted by VCCW.
// You can place addtional PHP code here!

#
# Theme unit testing
#
theme_unit_test: false
theme_unit_test_uri: https://raw.githubusercontent.com/WPTRT/theme-unit-test/master/themeunittestdata.wordpress.xml
# theme_unit_test_uri: https://raw.githubusercontent.com/jawordpressorg/theme-test-data-ja/master/wordpress-theme-test-date-ja.xml

#
# DB will be reset when provision
#
reset_db_on_provision: false

#
# RubyGems
# Wordmove will be forcibly installed.
#
ruby_gems:
– bundler
– wordmove

mailcatcher: true

wp_i18n_tools: true

#
# NPM modules
#
npms: []

#
# composer
#
composers:
– phpunit/phpunit:5.6
– squizlabs/php_codesniffer:~2.0
– wp-coding-standards/wpcs:*
# – phpmd/phpmd:*
# – sebastian/phpcpd:*
# – phploc/phploc:*
# – phing/phing:*

#
# wp-cli package commands
#
wp_cli_packages:
– vccw/wp-cli-scaffold-movefile:@stable

#
# Linked Clone for Vagrant v1.8
#
linked_clone: true

#
# Advanced Settings
#

#
# PHP ini values
#
php_ini:
date.timezone: UTC
default_charset: UTF-8
mbstring.language: neutral
mbstring.internal_encoding: UTF-8
post_max_size: 1024M # Same with VVV
short_open_tag: Off
session.save_path: /tmp
upload_max_filesize: 1024M # Same with VVV
xdebug.remote_enable: true
xdebug.remote_host: 127.0.0.1
xdebug.remote_port: 9000
xdebug.profiler_enable: true
xdebug.idekey: VCCWDEBUG
xdebug.remote_connect_back: true
xdebug.remote_autostart: true

synced_folder: wordpress
document_root: /var/www/html

[/code]

wp scaffold vccwは、

[code]
wp scaffold vccw scaffold-test –host=scaffold-test.dev –ip=192.168.32.123 –lang=ja
[/code]

のようにオプションを設定します。
vccw.yml.mustacheでは、

[code]hostname: {{ host }}[/code]

のように、オプションを受け取るように準備しておきます。
これで、VCCW環境準備はOK。
あとは、vagrant upで環境立ち上がります。

provision-post.shでテーマ準備

provision-post/provision-post.sh at master · marushu/provision-post

ここはvagrant up完了後にテーマをwp scaffold _sで作成し、オレオレpackage.jsonとstyle.scssにオレオレmixinを追加してます。

ただし、このprovision-post.shはvagrant upする度に実行されるので、テーマファイルが既にある場合はスキップさせます。

スキップさせる際、画面表示がいやな場合は、

[code]set -ex[/code]

[code]set -e[/code]

にしておけばいいかも 😀

初心者向け、「上手い」シェルスクリプトの書き方メモ – Qiita