この記事ではLocal by Flywheelで構築したWordPressサイトのテーマファイル(PHP・CSSファイル)を、Browser SyncとGulpをインストールして、ブラウザ上でリアルタイムプレビューする方法について記載していきます。
Browser Syncの最大のメリットは、例え開発環境がWindowsであっても、iPhoneさえあればSafari上でのウェブページ表示を確認できることです。
しかし、Browser SyncだけではPHPファイルを表示することができないので、今回はGulpもインストールして設定していく必要があります。
導入に必要な手順は次の4Stepです。
- WP用のテーマファイル格納場所の把握
- Node.jsをインストール
- Browser Syncをインストール
- Gulpをインストール
※VS Codeがインストール済であること、Local by FlywheelでWPサイト構築済みであることを前提としています。
では4Stepについて簡単に解説していきたいと思います。
WP用のテーマファイル格納場所の把握
Local by Flywheelで構築したWPサイトのテーマは、初期状態であれば下記のパス「themes」フォルダに保存されていると思います。
C:\Users\ユーザー名\Local Sites\サイト名\app\public\wp-content\themes
私の場合は「themes」フォルダの中に更に「mytheme」というフォルダを作って、こんな感じでテーマ用のファイルを配置しました。
themes
┗mytheme
┣index.php
┗style.css
最終的には「themes」のフォルダ内に、「package.json」と「gulpfile.js」を配置していきます。
themes
┣gulpfile.js
┣package.json
┗mytheme
┣index.php
┗style.css
Node.jsのインストール
Node.jsのインストール方法については、Progateさんのページでかなり丁寧に解説してくださっていますので、そちらをご参考ください。
https://prog-8.com/docs/nodejs-env-win
Gulpのインストール
Gulpのインストールについては下記を参考にしました。
【gulp4】gulpとはなにか? 環境構築してみよう windows10版 | shuu11 code
しかし手順がかなりざっくりで、初心者には厳しいものがあったので、改めて解説します。
まずはコマンドプロンプト上で、下記コマンドで先ほどの「themes」フォルダまで移動します。
cd C:\Users\ユーザー名\"Local Sites"\サイト名\app\public\wp-content\themes
※cd
とはコマンドを実行したいフォルダまで移動するためのコマンド
※ユーザー名とサイト名は設定によって異なります
※Local Sitesを""で括るのを忘れずに!
次に下記のコマンドを実行してください。「themes」フォルダ内に「package.json」ファイルが生成されます。
npm init -y
次に下記のコマンドでGulp CLIとGulpをインストールします。
npm install gulp-cli gulp -D
次に下記のコマンドでGulpが正常にインストールされているか確認します。
npx gulp -v
バージョンが表示されれば問題ありません。
次に下記のコマンドで、「themes」フォルダ内に「gulpfile.js」を生成します。
npx -p touch nodetouch gulpfile.js
次に生成した「gulpfile.js」をテキストエディタで開き、下記の内容をコピペして保存します。
//---------------------------------------------------------------------- // モード //---------------------------------------------------------------------- "use strict"; //---------------------------------------------------------------------- // モジュール読み込み //---------------------------------------------------------------------- const gulp = require("gulp"); const { src, dest, series, parallel, watch, tree } = require("gulp"); const bs = require("browser-sync"); //---------------------------------------------------------------------- // 関数定義 //---------------------------------------------------------------------- function browserSync(done) { bs({ files:["./mytheme/**","./mytheme/*.css"], // 指定した値が変更されるとブラウザをリロードする proxy : "サイト名.local", port : 3000, // browsersyncサーバが使うポート番号を変更できる notify: false, // ブラウザ更新時に出てくる通知を非表示にする open: "external", // ローカルIPアドレスでサーバを立ち上げる }); done(); } //---------------------------------------------------------------------- // タスク定義 //---------------------------------------------------------------------- exports.bs = series(browserSync); /************************************************************************/ /* END OF FILE */ /************************************************************************/
files:
では、どこのフォルダの何というファイルをブラウザで読み込むか?というのを指定しています。
通常であればfiles:"./src/**"
という記述だけで動くはずですが、私の場合は何故かCSSファイルの変更を読み込んでくれなかったので、"./mytheme/*.css"
と追記しています。
Browser Syncをインストール
いよいよ下記コマンドでBrowser Syncをインストールします。
npm install browser-sync
※エラーが出る場合は、sudo npm install browser-sync
で管理者権限で実行してください。
次にLocal by Flywheelで、「START SITE」を実行します。
最後に先ほどのコマンドプロンプト上で、下記のコマンドを実行するとブラウザが起動します。
npx gulp bs
ここまでできたら、PHP・CSSファイルなどをテキストエディタで更新する度に、ブラウザが再読み込みしてくれるようになります。
ついでに同じWiFiに接続している端末であれば、自動起動したブラウザと同じURLを開くことで同じページを開くことができます。
つまりiPhoneからiOSの動作を確認することも可能になります。
※場合によってはWiFi接続時の設定や、ファイアーウォールの設定の見直しが必要です。
最後にブラウザを終了する時は下記の手順でポートを閉じてください。
- コマンドプロンプト上でCtrl + Cを実行
^Cバッチ ジョブを終了しますか (Y/N)?
と出てきたら、y
と入力してEnter
を押す
この手順を踏まないとセキュリティー的に危険なので要注意!
以上、Local by FlywheelのBrowser Syncの導入方法でした。