WordPress でローカル(Mac)の写真を自動でアップロードしたい、試行錯誤編

今回の記事は、こんな人が書いてるもぐー!
タネマキ運営者
横浜駅のコワーキングスペース タネマキを運営しています。コーヒー部、ジャグリング部。いつの間にかに2児の父で毎日てんやわんや。最近、クロスフィットを始めました。

最近、タネマキブログの更新頻度をあげたいと思っていまして、実際に投稿は増えているものの、今後も高い?モチベーションを維持できる気もせず、油断するとあーだこーだと面倒になってしまいそうなので、モチベーションを上げる施策とは別に、今のうちに投稿の障壁を少しでも下げて面倒な気持ちが沸き起こらない仕組みを、と思い自動化できるものはしてみよう。

ってことで、とりあえずは、個人的には面倒かつ自動化できそうな画像のアップロードをなんとかしたいなと。

なんでだろう、そんなに手間にも思えないんだけど、なんだかあまり好きになれない行為でして…。んで、最終的に、記事の投稿画面で「メディアを追加」ボタンを押したら、もうそこには写真がアップロードされている状態、を目指したい。

なお、他に面倒なこととして、そもそも文章を書くのが面倒なので、音声入力などいろいろ試していきたいです。ちょっと制約が多くてこちらは、あまり試せていないですが。追々。

それでですね、写真のアップロードは、思ったよりハマってしまって、手でポチポチし続けた方が早かったんじゃ…と思えるくらいには調べたり実装したりしちゃったので、せめてブログのネタとして成仏してくれぇ。

結論から書いちゃうと、Mac の Automator でフォルダを監視し、シェルスクリプトで、WordPress の API 経由で自動アップロードする方法を採択しました。

以下、検討したり試したりしたリスト。

  • Google Photo と連携、Jetpack を利用
  • DropBox と連携
  • Mac の Automator でフォルダを監視
    • WP-CLI でアップロード
    • REST API でアップロード

Google Photo と連携、Jetpack を利用

それで、自分のフォトライフは、最終的には、撮った写真をすべて Google フォトに自動でアップロードな感じです。(かなりの高画質なまま、無制限にアップロードできるし、アプリも使い勝手良いので重宝しています。)PC などで加工した写真もすべてGoogle フォトにアップロード。なので、一番は Google フォトと WordPress が連携できたら素敵かなと。

今回は、Google フォトとの連携を、Automattic 謹製の Jetpack by WordPress.com を使ってやってみました。自分は初めてでしたが、Jetpack を利用している方も多いと思うので、気軽に試せる方法ですね。

Jetpack 自体は気に入ったので、継続して利用する予定ですが、Google フォトとの連携はイマイチ。

  • すべての写真が同期されない。
  • 同期したくない写真までしちゃう。
  • 管理画面が WordPress.com。自サイトでやりたい。
  • インポート作業がある。ボタンをポチポチしないといけない。

同期に関しては、設定次第ではなんとかなるのかもですが、結局労力が減ってる気がしないので、別の方法を模索。引き続き、Google フォトと連携する方法を模索するも、良さそうなプラグインが見つけられず。

DropBox と連携

クラウド繋がりで、DropBox も容量あるので、活用したいなと思いましたが、まぁこれはのちのち写真を消しちゃったり移動しちゃったりしたら厄介なので、却下しちゃいました。

WordPress の「URL から挿入」機能と組み合わせれば、なかなか良いかもと思いましたが、URLをいちいちコピーしたりするのも面倒だなと。ただ、DropBox とWordPress のメディアライブラリと同期させるプラグインなどがあれば、自分のサーバーにコピーを作れるはずなので、その方法も良いかもしれません。

Mac の Automator でフォルダを監視

最終的には、Automator でフォルダを監視して、API などを利用してローカルから写真をアップロードする方法。

Automator ってのは、Mac の便利アプリで、いろいろ自動化できるスグレモノ。フォルダにファイルを入れたら、そのファイルに対して何かさせる、みたいなことができます。今回は最終的にこの方法に落ち着きました。WordPress の API は使ったことなかったので、良い機会かなと思ったのも選定理由です。

調べる過程で、WP-CLI などがあることも知り、それで画像のアップロードも実現できそうかなぁと、試してみましたが、リモートから写真をアップロードすることが叶わず断念…。WP-CLI は、コマンドラインで WordPress がいじれるらしいので、また別途調べる予定。

んで、タネマキのサイトは、エックスサーバーというレンタルサーバーを利用しているのですが、SSH 経由でコマンドを実行するも、リモート(エックスサーバー側)の WP-CLI を実行することができず。ログインしてからなら実行できるんですが。ぐはぁ。

bash: wp: command not found

んで、外部からのコマンドだと、パスが通っていないようなので、WP_CLI_SSH_PRE_CMD ってのがあったので、それでbash_profile を読ませてから実行させてみたけど、やはり実行できず。

WP_CLI_SSH_PRE_CMD='source ~/.bash_profile' wp help --ssh=SSH接続情報:/WordPress のディレクトリ/

解決策はあったのかもしれませんが、もーなんだか面倒なので、API を使うことにしました。おそらく管理者権限でいじれる環境なら問題なく実行できるはずなので、この選択肢の方が WordPress の REST API を使うより楽だし柔軟だと思いますので、ぜひ試してみてください。

WordPress の REST API を使う方法は、JWT Authentication for WP REST API — WordPress Plugins などを利用して、すんなり実現。結構簡単に投稿できてWordPress すげーってなりました。

JWT Authentication for WP REST API の使い方、curl コマンドを使ってトークンを取得する。

ちょっと長くなったので、別記事にまとめます。ではでは。

タネマキのSNS

モグ雄の Twitter タネマキの Facebook ページ タネマキの LINE