WP REST API のドキュメント内の用語集を簡単に翻訳する

WP REST API の公式のドキュメンテーションサイトにある用語集を翻訳してみました。コントローラ、HEAD, GET, POST, PUT, DELETE、HTTP Client、Resource、Routes、Endpoints、Schemaの項目があります。

Glossary | WP REST API v2 Documentation は WordPress JSON REST API の用語集となっておりまして、ここを翻訳してみたいと思います。

時期が来たら日本語のコデックスに移動したらいいかな?と思うけど日本語の使い方が難しいので困っちゃうな。ちゃんとやろうとするとすごく時間がかかってしまうので。。。

以下、翻訳です。

“WP REST API のドキュメント内の用語集を簡単に翻訳する”の続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

http リクエストをターミナルからお試しする httpie

HTTPリクエストをターミナルから送りたいよね! httpie というツールがあったので json を取得したり、 Contact Form 7 にサブミットしたりしてみたよ。

WP JSON REST API を試してみるとき、 json のデータを綺麗に見たい。ポンと送ってHEADER 情報とレスポンスのボディを簡単に色付きで確認したい。

jkbrzt/httpie

HTTPie というコマンドラインHTTP クライアントがあるようなので使っていきたいと思います。

ツールがつまりどういうことなのかといいますと、

  • WP REST JSON API を試してみたい
  • WordPress に対してリクエストを送りたい
  • 自分が送ったリクエストがなんだったのかを見たい
  • レスポンスの JSON を綺麗な形で色付きで見たい
  • ターミナルでやれると嬉しい

HTTPie: a CLI, cURL-like tool for humans

HTTPie (pronounced aitch-tee-tee-pie) is a command line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible. It provides a simple http command that allows for sending arbitrary HTTP requests using a simple and natural syntax, and displays colorized output. HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.

“http リクエストをターミナルからお試しする httpie”の続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

WordPress プロジェクトのバックアップ、アップデート、報告の自動化

WordPressサイトで、本番環境をローカルにコピーしてバックアップ、アップデート、ログや報告メールを作ってくれるシェルスクリプトを書いてみた!

初めてのシェルスクリプト!

便利なものを作ってみたいな、ということで普段使いができる、時間がかかってしまって面倒なことを自動化する試みであります。

さて、今回は、たとえば、

  • 複数の WordPress のサイトやプロジェクトを管理していて定期的に、あるいは WordPressの本体がアップデートされた時にコアやプラグインをアップデートし、チームやクライアントにメールで報告するタスク
  • 機能追加やバグ取りなどを実施する前に本番の環境を手元に持ってきて、その際にバックアップも作るしそのログも残すタスク

を自動的にやってくれるコマンドを作ってみました。

  • ローカルのDBのバックアップをする
  • リモートのファイルとデータベースを持ってきて反映
  • 同時にバックアップも作る
  • ついでに作業内容のログを残し、
  • クライアントサイトの場合には、報告のメールの文章を用意したい

という内容でございます。

もっとこういう風に書いたほうがいいよ!などのフィードバックぜひぜひお願いします。@shinichiN | Twitter です。

前提となる環境

ローカルのサーバ環境がある

VCCWwp-instant-setup, MAMP, XAMPP などなんでもOKです。

ツールが揃っている

今回使うツールは以下のものです。

実施する内容

今回自動化したい内容は、大きく分けて以下のものになります。

バックアップとアップデートの作業

  • 現状のローカル環境のデータベースのバックアップを作成
  • リモートからすべてのファイル、データベースを持ってきて適用する
  • リモートの最新状態のデータベースのバックアップを作成
  • WordPress のコアを最新のバージョンにアップデートする
  • すべてのプラグインを最新のバージョンにアップデートする

人間っぽい作業を簡単にする部分

  • 上記のすべて作業内容で出力される内容をログファイルにまとめる
  • 上記のすべての作業内容を、コピペしてクライアントに見やすくまとめたメール本文としてテキストファイルにまとめる
  • データベースの新旧バックアップファイルとログファイル、メールの本文をドロップボックスに保存する

使い方(試し方)

Github にあるスクリプトをいい感じの場所に設置して実行権限を渡し、パスを通すか、以下のワンライナーを実行してください。

curl https://raw.githubusercontent.com/ShinichiNishikawa/WP-Backup-for-client-projects/master/wp-backup.sh | sh

条件

  • wp-cli がある環境
  • Wordmove がある環境
  • Dropbox がある環境

この他に、引数を指定するのが面倒であったため、データベースのダンプファイルの名前に実行している、このスクリプトを実行しているディレクトリの名前を使ったりもしているので、いつも同じ名前のフォルダ `www` とか `public_html` などがローカル環境にある人は使いにくいかもしれません。その場合は、フォルダの名前をローカル環境のホスト名などにするなど工夫してください。

自慢ポイント

メールの本文も作ってくれるのが便利。ここからメールを送ってしまっても良いのかと思いましたが、エラーの確認や必要な修正をしてあげてから本番にアップしないといけないので、その部分は自動化できませんでした。

ログファイルの中にパスワードが含まれることになるので、それを削除しているところも色々調べて作りました。正規表現がすごく苦手なので大変でした。

今後の改善予定

wp-cli の置換コマンド `wp search-replace` に `–export=<filename>` という結果をダンプファイルとして出力させるオプションが追加されるので、もしかしたらローカルではなくリモートのホスト名でのダンプライフもここで作れるかもしれません。

作業時にDBにも手が入ることが多いのでやらないかもですが。

それから、実行されたのが WordPress のあるディレクトリじゃないとか、ネットワークに接続できなかったとき、Movefile が存在しないときなど色々なエラーを想定して、もっときちんと処理が止まったりエラーが出た旨のメールが届いたりなどしたいと思います。

もうひとつ、WordPress がインストールされているディレクトリのリストを作り、すべてのサイトにひとつのコマンドで実行ができれば、さらに効率が上がっていいな、と思います。

できあがるファイルの様子

スクリーンショット_2015-12-23_0_26_02.jpg

できあがるメールの例

いつもお世話になっております。

WordPress サイトの更新をおこないました。
変更の概要は以下のとおりです。

– 作業日: 2015年12月22日
– ローカル環境でWordPress のバージョンを 4.3.1 から 4.4 にアップグレードしました。
– ローカル環境でWordPress のプラグインを、以下のようにアップデートしました。

name version
advanced-custom-fields 4.4.4
auto-post-thumbnail 3.3.3
breadcrumb-navxt 5.3.1
contact-form-7 4.3.1
content-bootstrap 1.0.2
custom-post-type-permalinks 1.3.0
duplicate-post 2.6
image-widget 4.2.1
mailcatcher 1.0
more-body-classes 1.0
nginx-champuru 3.1.1
show-current-template 0.2.2
simple-map 2.8.8
nskw-title-description-handler
wordpress-importer 0.6.1
wp-pagenavi 2.89.1
wp-multibyte-patch 2.5
wp-simple-related-posts 1.5.1
wp-total-hacks 2.0.1

– ローカル環境で、アップデートに由来するエラーの有無を確認・修正
– 本番環境に変更を適用
– 本番環境での表示、ログインなどを確認

今後とも引き続きどうぞ宜しくお願い致します。

↓ プラグインを作る方々への本、書きました。 ↓

ローカルでのメールの確認ができるMailCatcherをMacで使う

ローカルの環境でメールの送信を確認したいとき、

  • メールが送れない
  • 送られても困る
  • いちいちメーラーを開くのも面倒だ

ということがあると思います。そんなときには、VCCW + MailCatcherで送信メールを確認するための環境を構築 | Firegoby が便利!

  • 簡単なコマンドで起動することが可能。
  • ウェブサーバーも同時に起動し、送信したメールをブラウザで確認することができる。
  • メールはMailCatcherから先には送信されない。
  • ウェブソケットを使用しており送信したメールはリアルタイムで表示される。(リロードが不要)
  • APIを搭載しており、たとえばユニットテストなどで送信メールの内容の確認を自動化できる。

僕も使ってみたので、WordPressなどなどの設定を見てみたいと思います。

MailCatcher を利用するのに必要なこと

  1. MailCatcher 本体のインストール( gem install mailcatcher )
  2. WordPress のプラグイン Mailcatcher for WordPress を有効化
  3. wp-config.phpdefine(WP_MAILCATCHER, true); を記入

だけです。

これが終わったらターミナルから、mailcatcher と実行するだけです。

$ mailcatcher
Starting MailCatcher
==> smtp://127.0.0.1:1025
==> http://127.0.0.1:1080
*** MailCatcher runs as a daemon by default. Go to the web interface to quit.

ブラウザで http://127.0.0.1:1080 へアクセスするとブラウザがメーラーになってて、WordPressが送信するメールを全部受信できます。宛先が誰であっても全部ここに来ます。メールをキャッチ!

ほんと便利。
ほんと便利。

↓ プラグインを作る方々への本、書きました。 ↓

iPhone の実機やシミュレータの Safari を Mac の Safari のインスペクタでデバッグする

デスクトップのブラウザのインスペクタやデベロッパーツールも便利ですが、最後に困ったらやっぱり iOS シミュレータや iPhone、iPad の Safari で何がどうなっているのかを見たいものですよね。

  1. Mac の Safari の環境設定の詳細タブで、「メニューバーに”開発”メニューを表示」にチェックが入っていることを確認
  2. 現れた開発メニューから iOS Simulator か、USB で接続している iOS 端末を選ぶ
  3. iOS 実機の方では、設定 > Safari > 詳細 と進んで “Webインスペクタ” をオンにしておく

以上です。3番を教えていただいた @tak_nishida さん、ありがとうございました。

シミュレータとUSBで接続している iOS 端末が並ぶ
シミュレータとUSBで接続している iOS 端末が並ぶ
iOS シミュレータの中の Safari を Mac の Safari でWebインスペクトしているところ。便利
iOS シミュレータの中の Safari を Mac の Safari でWebインスペクトしているところ。便利

上の画像のノリで、実機もいけまする。

↓ プラグインを作る方々への本、書きました。 ↓