• RS CSV Importer Media Add-On 1.0.0 をリリースしました。

    最近はconcrete5でおなじみの菱川さんが作った、Really Simple CSV Importerというプラグインがありまして。よくお世話になってます。

    この間、画像データを投稿に紐付ける必要がありまして。

    出来れば画像はWordPressのメディアとして管理して、カスタムフィールドに画像のIDを突っ込めればなー。カスタムフィールドにURL突っ込めばダウンロードしてこれないかなーって要件がありましてた。

    ということで、Really Simple CSV Importerのアドオンプラグインを作りました。

    RS CSV Importer Media Add-Onというまんまな名前のプラグインです。

    一昨年くらいにフォークしてその機能をつけたりしてたのですが、URLをそのまま使いたいこともあったりで、アドオンにしておいた方がいろいろ便利だなと言うことで。

    使い方

    Really Simple CSV Importerをインストールして有効化した後、RS CSV Importer Media Add-Onをインストールして有効化して下さい。

    その後はReally Simple CSV Importerの使い方と一緒です。カスタムフィールドの欄に画像などWordPressのメディアとして扱えるファイルのURLが存在した場合、ダウンロードして記事のカスタムフィールドの値をメディアのIDに変更します。

    CSVのサンプルはこちらを参考にして下さい。https://github.com/torounit/rs-csv-importer-media-addon/blob/master/sample/linux.csv

    IDにして保存するので、モンキーレンチのキタジマさんSmart Custom Fieldsとも相性が良かったりします。

    インポートするファイルの拡張子の設定

    really_simple_csv_importer_media_ext2typeというフィルターフックを作りました。

    これにフックすると、インポートするファイルの拡張子を変更することが出来ます。これで、画像はダウンロードするけどPDFへのURLはそのまま、みたいなことも出来るようになってます。

    Sample Code
    add_filter('really_simple_csv_importer_media_ext2type', 'really_simple_csv_importer_media_ext2type');
    
    function really_simple_csv_importer_media_ext2type( $types ) {
        return array(
            'image'       => array( 'jpg', 'jpeg', 'jpe', 'gif', 'png' ),
            'audio'       => array( 'mp3', 'ogg', 'wav', 'wma' ),
            'video'       => array( 'mov', 'mp4', 'mpeg', 'mpg', 'ogm', 'ogv', 'wmv' ),
            'document'    => array( 'doc', 'docx', 'odt', 'pages', 'pdf', 'psd' ),
            'spreadsheet' => array( 'ods', 'xls', 'xlsx' ),
            'interactive' => array( 'swf', 'key', 'ppt', 'pptx', 'odp' ),
            'text'        => array( 'asc', 'csv', 'tsv', 'txt' ),
            'archive'     => array( 'dmg', 'gz', 'rar', 'tar', 'tgz', 'zip'),
            'code'        => array( 'css', 'htm', 'html', 'php', 'js' ),
        );
    }

    使い方wp_ext2typeへのフックと変わらないです。というか内部的にはこれ使ってます。なのでデフォルトでは、wp_ext2typeが許可しているモノを全て許可します。svgなどWordPressがアップロードを許可してないモノはまた別に設定が必要です。WordPressの管理画面からアップロード可能なモノのみ受け付けます。

    レポジトリ

    Github: https://github.com/torounit/rs-csv-importer-media-addon

    バグなどあったらプルリク下さいー。

  • Custom Post Type Permalinks 1.0.0以上で発生する、カスタム投稿へのパーマリンクが404になってしまう現象について。

    ちょっと報告が複数あったので対処法などをまとめておきます。

    wp_loaded のactionの最後のほうで、Rewrite Ruleの登録を行うように変更したことに絡んで発生した不具合です。

    flush_rewrite_rulesをregister_post_typeやregister_taxonomyの直後に動作させている場合に発生します。

    register_post_type( 'hoge', $post_type_args );
    register_taxonomy( 'piyo', 'hoge', $taxonomy_args );
    flush_rewrite_rules();

    flush_rewrite_rulesはURLをどのように分解するかというRewrite Ruleというモノを全て削除し再生成するものです。このRewrite Ruleを参照してWordPressはURLを理解しています。

    flush_rewrite_rulesはとても重いので毎回実行すべきものでは無いです。ではいつ動作するのかと言うことですが、管理画面のパーマリンク設定を更新したときに実行されます。そのときに、Rewrite Ruleはデータベースに保存されます。

    参考:

    Custom Post Type Permalinks 1.0.0からは、register_post_typeやregister_taxonomyの時点でrewrite_ruleの登録を行いません。その段階でflush_rewrite_rulesを実行してしまうと、変更されていないモノから生成してしまうので404になってしまうと言うことです。

    Codexでもflush_rewrite_rulesは毎回に動作させるのはバットプラクティスだと名言されているので、この問題についてプラグイン側で修正をする予定はありません。

    もし、flush_rewrite_rulesをregister_post_typeやregister_taxonomyの後に動作させている場合は、flush_rewrite_rulesを削除してください。

  • Custom Post Type Permalinks 1.0.0 をリリースしました。

    Custom Post Type Permalinks

    Custom Post Type Permalinks 1.0.0 をリリースしました。

    Plugin Directory: https://wordpress.org/plugins/custom-post-type-permalinks/

    変更点

    wp_loaded のactionの最後のほうで、Rewrite Ruleの生成を行うように変更しました。

    投稿タイプとタクソノミーが絡むパーマリンクの生成時の不具合の修正のための仕様変更です。

    カスタムタクソノミーのアーカイブの時に、post_typeのクエリを渡せるようにしました。

    管理画面から設定できます。これを渡すと、タクソノミーテンプレートより、カスタム投稿タイプのアーカイブテンプレートが読まれます。

    register_post_typeでパーマリンクを設定できるようにしました。

    register_post_type( 'foo',
        array(
            "public" => true,
            'has_archive' => true,
            "rewrite" => [
                "with_front" => true
            ],
            "cptp_permalink_structure" => "%post_id%"
        )
    );

    こんな感じで、設定できるようになってます。管理画面の設定より優先されます。

    バージョン番号をセマンティックバージョニングにしました。

    Plugin Directoryからアクティブなバージョンが見えるようになったというのもあったりで、セマンティックバージョニングするようにしました。なので、とりあえず、1.0.0です。

    その他、バグFix等多数です。

    Other Notes

    プルリク、バグレポート等、くださいー。

    @Toro_Unit

    Github. https://github.com/torounit/custom-post-type-permalinks

    最近プラグインリリース祭りなのですが、姉妹品のSimple Post Type Permalinksや、Powerful Posts Per Page(PPPP)等もよろしくお願いします。

     

    お酒とか下さい。

    Wish List. http://www.amazon.co.jp/registry/wishlist/COKSXS25MVQV/

     

  • Powerful Posts Per Page 0.8.0をリリースしました。

    pppp

    WordPressの1ページあたりの投稿数(Posts Per Page)を、タクソノミーやカスタム投稿タイプで個別に設定できるようにするプラグイン、Powerful Posts Per Pageの0.8.0をリリースしました。

    1年以上放置してたので、久々の更新です。というか2013年にリリースしたプラグインだったんですね。もっと最近だと思っていたのですが。

    今回のアップデートでは、4.2等でのテスト、テストコードの追加、Classをファイルごとに分割などです。

    内容はほとんど変更してないです。

    これからも細々とメンテナンスしていきます。

     

    Plugin Directory: https://wordpress.org/plugins/pppp/

    Github: https://github.com/torounit/pppp

    プルリクエストなど、お待ちしてますー。

  • WordPress のカスタム投稿タイプのパーマリンクを簡単に変更できるようになるプラグイン「Simple Post Type Permalinks」作った。

    WordPress のカスタム投稿タイプのパーマリンクを簡単に変更できるようになるプラグイン「Simple Post Type Permalinks」作った。

    Simple Post Type Permalinks というプラグインをリリースしました。

    名前通り、投稿タイプごとにパーマリンクを設定できるプラグインです。どこかで聞いたことのあるような名前のプラグインですが、それとはまた別物です。

    できること

    • カスタム投稿タイプごとにパーマリンクを設定。%post_id%%postname%が使用可能。
    • register_post_typeで、パーマリンク構造の定義。

    の2種類です。

    できないこと

    • タクソノミー(カテゴリーやタグを含む)等には対応してません。
    • 日付、著者などのタグも使えません。
    • %post_id%%postname%だけしか使えません。
    • アーカイブのパーマリンクを自動的に追加しません。

    とにかく、シングルページのパーマリンクのカスタマイズだけが可能です

    使い方

    管理画面は、こんな感じです。

    sptp

    例のプラグインと同じく「パーマリンク設定」のページの下にパーマリンク設定のセクションがあります。そこから、適当にパーマリンクを設定して下さい。投稿タイプのスラッグを入れない設定などもできますが、投稿や固定ページのパーマリンクと競合すると404になったりします。

    もしくは、register_post_typeで投稿タイプを定義する際にパーマリンクをコードで設定します。

    register_post_type( 'hoge',
        array(
            "public" => true,
            "sptp_permalink_structure" => "foo/%post_id%"
        )
    );

    開発の理由

    Custom Post Type Permalinksというプラグインをすでにリリースしてますが、その機能縮小版のようなプラグインをなぜリリースしたかってコトなんですケド。

    別に、Custom Post Type Permalinksの開発・メンテナンスは止めません。細々とこれからもやりますよー。

    Custom Post Type Permalinksには、パーマリンクの変更のほかにも、日付アーカイブ、カスタムタクソノミー、いろんな機能が入ってたりします。

    それはそれでいいんですけど、「別に日付アーカイブとか要らないし!」ってときに逆に面倒だったり。かといって設定項目追加したらそれもそれで訳わからんなぁー、ってことになり、とにかくシンプルにカスタム投稿タイプの記事のパーマリンク変更するだけのプラグインを作ったということです。

    なので、同じようなプラグインですけど方向性が違います。そのため、Simple Post Type Permalinksでは投稿タイプのスラッグを無視したパーマリンクも設定できるようになってます。

    あとは単純に、Custom Post Type Permalinksを書き直したい欲を満たすためでもあったりします。

    PHP 5.3以上でしか動作しません。PHP 5.2だと、ファイルが読まれないようにしてます。

    とりあえず、プルリクとか待ってますー!

    Github: https://github.com/torounit/simple-post-type-permalinks

  • VirtualboxがMac Book Pro Retina(Early 2015)でカーネルパニックになる問題について。

    追記:現在のバージョンVirtualBox 4.3.26 (Build 98988) では解決しています。

    先日新しいMac Book Pro Retinaを頼んでいたら、こないだAppleの発表の時期だったので、新しいMac Book Pro Retinaになってました。

    そんなわけでラッキーとか浮かれながら開発環境の構築をしていたら、Virtualboxで仮想マシンを起動すると、ホストOSがカーネルパニックを起こすという、割としゃれにならない事態が発生しました。要は、OS Xがいきなり落ちます。

    とりあえず、原因究明してたら、フォーラムの方に似たような投稿がありました。

    https://forums.virtualbox.org/viewtopic.php?f=8&t=66562

    テストビルドをインストールすると直りました。記事を書いているときのrevisionは98914です。

    よくわからないですけど、BroadwellアーキテクチャのCPUの場合、問題が発生するっぽいです。なので、Airの最新モデル等でも同じ問題が発生するかもです。

    今日一日 vagrant up できずに泣きそうでした。

    以上、人柱からの報告でした。

  • WordPressの投稿一覧にカスタムフィールドを表示する。

    WordPressでカスタム投稿タイプ + カスタムフィールドってのはよくある話だとは思いますけど、管理画面に表示させたいってことが結構あったので、クラスを書いて簡単に扱えるようにしました。

    並べ替えにも対応しているので、イベントや、商品などを扱うときに便利かと思います。

    2015-02-19

    つまり、こんな感じです。イベントカレンダーなので、並べ替えができるといろいろ便利だったりします。

    コード

    コードはこんな感じです。gistに上げてあるので適当に使って下さい。細かい説明をやり出すとかなり長いのでそこら辺は割愛します。日時欄の前にカスタムフィールドを追加します。

    無名関数や配列の短縮構文を使っているので、PHP5.4以上で動作します。そこらへん適当に直せばもっと古い環境でも動くと思います。

    https://gist.github.com/torounit/64d66203042459a6d25b

    第4引数の$is_numをtrueにすると、並べ替え時に文字列ではなく、数字として並び替えます。価格欄などはtrueにしておくと便利かもしれません。

    また、取得するカスタムフィールドを表示する前に、フィルターをつけてあります。

    それを使うと、

    • カスタムフィールドには画像のIDを保存し、wp_get_attachment_imageなどで、画像を表示する
    • 日付のフォーマットの変更
    • 価格欄に単位をつけて表示
    • WordPressという文字列のPをちゃんと大文字にする

    等のことができるようになります。

    あまり知られてないですけど、管理画面周りでできる事って地味に多いですね。

  • WordPressでstrtotimeとかmktimeしたり、日付を扱うときの注意事項

    WordPressでカスタムフィールドを使って日付を入力させたりする、なんてことはよくある話だと思います。

    ただしWordPressでは、wp-settings.phpで以下のコードが実行されて、タイムゾーンがUTCに変更されます。

    date_default_timezone_set( 'UTC' );

    なので、PHPのtimezoneの設定がどうなっていようと、UTCになってしまいます。なので、unixtime等を扱うときはかなり注意が必要だったりします。

    対処法

    その1 時差分を追加

    get_option('gmt_offset')で、WordPressで設定されているUTCとの時差が取得できますので、それをmktimeや、strtotimeの返却する値に追加します。

    <?php
    function local_mktime() {
     $defaults = array(
     date("H"),
     date("i"),
     date("s"),
     date("n"),
     date("j"),
     date("Y"),
     -1,
     );
     $args = func_get_args();
     $param = array_merge( $defaults, $args );
     $offset = get_option('gmt_offset') * 60 * 60;
     return mktime( $param[0], $param[1], $param[2], $param[3], $param[4], $param[5], $param[6]) + $offset;
    }
    
    function local_strtotime( $time, $now = null ) {
     $offset = get_option('gmt_offset') * 60 * 60;
     if( $now == null ) {
     $now = time();
     }
     
     return strtotime( $time, $now ) + $offset; 
    }

    その2 一時的にタイムゾーンを変更する

    date_default_timezone_get()で現在のタイムゾーンを取得、date_default_timezone_set( $timezone )で、タイムゾーンを変更できます。なので、これを使って、一時的にタイムゾーンを変更できます。

    <?php
    function local_mktime() {
     $defaults = array(
     date("H"),
     date("i"),
     date("s"),
     date("n"),
     date("j"),
     date("Y"),
     -1,
     );
     $args = func_get_args();
     $param = array_merge( $defaults, $args );
    
     $internal_timezone = date_default_timezone_get();
     date_default_timezone_set( 'Asia/Tokyo' );
    
     $timestamp = mktime( $param[0], $param[1], $param[2], $param[3], $param[4], $param[5], $param[6]);
    
     date_default_timezone_set( $internal_timezone );
    
     return $timestamp;
    }
    
    function local_strtotime( $time, $now = null ) {
     $offset = get_option('gmt_offset') * 60 * 60;
     if( $now == null ) {
     $now = time();
     }
    
     $internal_timezone = date_default_timezone_get();
     date_default_timezone_set( 'Asia/Tokyo' );
    
     $timestamp = strtotime( $time, $now ); 
    
     date_default_timezone_set( $internal_timezone );
    
     return $timestamp;
    
    }

    時差の絡んだ日付の変換はかなりややこしいです。timestampにする必要が無いところはstr_replace等で数値文字列に変換して対処する等する方が、バグなどを埋め込まずに済みそうです。

  • WordPressで不審なユーザーが管理者権限で登録されていたら。

    【助けて】WordPressで不審なユーザーが管理者権限で新規登録されていたんですが。。。 | ラブグアバ

    とりあえず、安全そうなバックアップから復旧しようぜ。としか言えないのですが、それすらない場合にとりあえずやること。

    WordPress・プラグイン・テーマの再インストール

    所謂普通のレンタルサーバーで何も考えずに、WordPressをインストールした場合、テーマ・プラグインが編集できてしまいます。

    つまり、何でもできてしまいます。

    PHPファイルも編集できてしまい、そこからさらに既存のファイルを書き換えたりできてしまうので、WordPressの本体、プラグイン、テーマ、そのほかサーバー上に不正なファイルがないかどうかの検証が必要になってきます。

    正直、検証とかやってられないので、真っ新な環境作って再インストールしましょう。

    wp-config.phpに

    define( 'DISALLOW_FILE_EDIT', true );

    を記述すると、この機能を無効にできます。

    wp-config.php の編集 – WordPress Codex 日本語版

    記事データの検証

    記事データ本文をエクスポートして、変なscriptタグが無いか検査します。結構面倒だとは思いますが、変なサイトへのリダイレクトなどが含まれてないか位は最低限チェックしないとだめな気はします。


    とりあえず、バックアップって大事だなぁって思います。

    あと、パーミッションを適切に設定する、使わない機能を無効にする、信用ならないプラグイン・テーマは使わない、使わないプラグインは消す、あたりは必ずやっておくこと。

    Crazy Bone突っ込んでログイン履歴を取っておく、Spirits and Goblinsで2段階認証を導入するあたりはやっておくと安心かなぁと個人的には思ってます。

    一度不正ログインとか改ざんとかやられると、極論、全てのデータ・ファイルを検査するか破棄するしか安全性が保証できないので、すげー大変だったりします。

    やっぱり事件が起こる前にちゃんとセキュリティには気をつけておきましょう。

  • 2014年を振り返ってみた。

    早いもので、気がつきゃ年も明けました。

    年始に早速インフルエンザになったりで初ブログがこんな時期に。

    今年もよろしくお願いします。年明け早々去年の振り返りです。

    松本市に引っ越した。

    1年ほどで出戻りました。別に地元って訳でもないんですが、歩いて温泉に行ける生活はやっぱり幸せですね。

    いろいろ助けていただいたり、かまってもらえる人もたくさん居たおかげで楽しい松本ライフでした。

    テストを書いてみた。

    初めてテストコードなるものを書いてみました。必要性は感じてはいたんですが、なかなか手が出ずと思っていたところに、テスト書かないと訳わからんという状況に遭遇したおかげで、やっとテストコードを書きました。あと、宮内さんにそそのかされてCustom Post Type Permalinksもテストを書きました。書いた方が楽なシチュエーションに結構出会えたので、積極的に書いていきたいなと思います。

    ダイエット始めた。

    ダイエット始めました。会うたびに「太った?」と聞いてくる宮内さんに「痩せた?」と言わせるのが目標です。

    WordCamp 2014 Tokyoに行った。

    アジアルの岡本さんと絶望ビリーをカラオケで熱唱しました。どうしてそうなったのかは良く覚えてません。楽しかったです。叫んでた記憶しか無いです。

    WordPressプラグイン開発のバイブルのハングアウトに出させてもらった。

    WordMoveが便利とかキタジマさんがつぶやいているのを見かけて、ちょっと触ってみたくなりました。そんで、FTP周りの修正のプルリクエストを投げたら、ハングアウトのお誘いをいただきました。

    なかなかできない貴重な体験でした。

    WordBench長野やれた。

    松本に戻ってきて、一番やりたかったことができました。

    来年はコンスタントにやっていきたいです。WB以外の事もちょっとずつやれたらなと思っていたり・・・・・。

     

    なんだかんだ充実した1年だったようです。今年もいろいろ楽しくコード書いたり、デザインやったり、イベントやったりしたいですね。

    よろしくお願いします。

  • Custom Post Type Permalinks 0.9.6 をリリースしました。

    Custom Post Type Permalinks

    毎度おなじみ、Custom Post Type Permalinks をアップデートしました。

    アップデート内容

    • 階層有りタクソノミーで親にも子にもチェックが入っていた時の挙動を修正
    • %category%と%author%に対応
    • フランス語翻訳
    • テストをすこしずつ導入

    と細かいfixになります。

    プルリクとかくださいー!クリスマスプレゼントとかお年玉ください。

  • ふつうのレンタルサーバーでも、VCCWとWordmoveを使って快適にローカル環境で開発しようぜ!

    昨日VCCWにプルリクエストを投げたらマージされ、コントリビューターになりましたToro_Unitです。1行だけですけどね!!!

    そのプルリクエストがWordmove周りのものだったのですが、プルリク投げたら宮内さんにブログを書けと言われたので書きます。

    What’s Wordmove

    そもそも、Wordmoveってなんぞやって話ですよね。僕もVCCWが対応したとかでそのとき初めて名前を聞きました。

    https://github.com/welaika/wordmove

    WordmoveはRuby製のWordPress用デプロイツールです。サーバー間でWordPressの環境をまるっと同期できます。プラグインとかテーマとか、データベースとか。本体も同期できますし、部分的にいろいろやれたりもします。言語ファイルだけとかも。

    データベースの同期だと、画像のリンクがフルパスになっていて同期先で上手く表示できないとかいう問題が発生しがちなのですが、そこら辺も上手い事やってくれます。

    要は、WordPressをサーバーやドメイン引っ越しとか、テスト環境から本番に公開するときなんかに、データベースをいろいろ書き換えたりとかしますよね。そこらへんも含めてコマンド一つでやってくれるものすごーい便利なツールです。

    また、本番環境からテスト環境へデータを持ってくる等もできるので、運用中のサイトのメンテナンスなどからでも取り入れる事ができます。

    VCCWでのWordmoveの使い方は、こちらの記事を参照してください。

    WordMoveを使ってVagrant内のWordPressと本番環境を同期する! | Firegoby

    なんか、便利そうですよね。触ってみたくなりませんか?

    さくらのレンタルサーバーでWordmoveする

    先ほど紹介した宮内さんのブログだとAWSの話なのですが、これをさくらのレンタルサーバーでやります。

    Movefileはこんな感じです。

    local:
      vhost: "http://wordpress.local"
      wordpress_path: "/var/www/vhosts/i-09798573b46965351"
    
      database:
        name: "wordpress"
        user: "wordpress"
        password: "wordpress"
        host: "localhost"
    
    staging:
      vhost: "http://example.com"
      wordpress_path: "/home/sakurauser/www/example.com"
    
      database:
        name: "database_name"
        user: "database_user"
        password: "database_pass"
        host: "database_host"
        charset: "utf8"
    
      exclude:
        - ".git/"
        - ".gitignore"
        - ".sass-cache/"
        - "bin/"
        - "node_modules/"
        - "tmp/*"
        - "Gemfile*"
        - "Movefile"
        - "wp-config.php"
        - "wp-content/*.sql"
    
      ssh:
        host: "sakurauser.sakura.ne.jp"
        user: "sakurauser"
        password: "pass"
        port: 22
        rsync_options: "--verbose"

     

    さくらのレンタルサーバーだと、データベースのdumpの文字コードがshift-jisになってしまうので、detabaseの項目に文字コードの指定を入れます。”utf-8″か”binary”にしておけば問題なく動きます。

    参考:WordPress – wordmoveのMovefileのエラーを解決してみた – Qiita

    $ vagrant ssh
    $ cd /vagrant
    $ wordmove pull --all

    上記のコマンドを実行すればサーバーからローカルへデータを同期できます。ただし、一番最初に実行するときはサーバーの公開鍵のチェックなどで上手くいかなかったので、vagrant sshでログインした後に対象のサーバーにsshで入る必要があります。

    $ ssh [email protected]

    これで、公開鍵を登録しますかとかうんたらかんたら聞かれるので、yesとしておけば大丈夫です。

    Movefileの設定等でなんとかなりそうな気はするんですけどね・・・。だれか教えてください。

    hetemlでWordmoveする

    hetemlの場合はsshは問題ないのですが、ファイルの同期をするrsyncが動かないので、FTPで行います。

    local:
      vhost: "http://example.local"
      wordpress_path: "/var/www/vhosts/i-09798573b46965351"
      database:
        name: "wordpress"
        user: "wordpress"
        password: "wordpress"
        host: "localhost"
    
    staging:
      vhost: "http://example.com"
      wordpress_path: "/web/example.com"
    
      database:
        name: "database_name"
        user: "database_user"
        password: "database_pass"
        host: "database_host"
    
      exclude:
        - ".git/"
        - ".gitignore"
        - ".sass-cache/"
        - "bin/"
        - "node_modules/"
        - "tmp/*"
        - "Gemfile*"
        - "Movefile"
        - "wp-config.php"
        - "wp-content/*.sql"
        - ".htaccess"
    
    
      ftp:
        user: "ftp_user"
        password: "ftp_pass"
        host: "example.com"
        passive: true
    

    wordpress_pathが実際のフルパスではなく、FTPでログインしたときのwordpressの場所になります。

    こちらの場合は、sshを使わないので公開鍵云々などの必要はありません。すんなり動きます。ただ、やりとりするファイルが多いと接続が切れたりする事があるようです。node_modules等はexcludeに指定しておくと良いかと思います。

    個人的にはまったとこ

    いくらpullしてもデータベースが反映されないなぁってやってたら、テーブルのプレフィックスを直してませんでした。ローカルでも本番環境でもこれは合わせておかないといけないようです。

    まとめ

    最近WordPressのCLIツールもどんどん発達してますが、使いこなすと革命レベルで作業がやりやすくなります。レボリューションです。

    WordmoveとWP-CLIはほんとにすごい。セットアップせずに使えるVCCWほんとすごい。