テンプレートを tmp と略してはいけない

[ テンプレートを tmp と略してはいけない ]

WordPress のテーマを Simplicity2 から Cocoon ベースに移行させました。実験環境からアップする時にトラブってしまったので、書き残したいと思います。

原因はタイトルの通り Cocoon がテンプレートファイルを配置している PATH にありました。

Cocoon のテンプレートファイルの場所

Cocoon のテンプレートファイルの場所tmp/ が一般的な一時ファイル用のディレクトリ名と被ってしまっています。

いつもの手順で wordmove で手軽にテーマを更新させたら、HTML の中身がスポーンと抜けていて、それでいてエラーログには反応なし。ちょっと焦りました。

あれこれ確認してみたら、デフォルトの movefile.yml で除外扱いの tmp/* にマッチして、転送されていなかった模様です。

エラーログに残らなかった理由

Cocoon でのテンプレート読込には WordPress の get_template_part() 関数 が普通に使われていたので、「戻り値」での注意書き通りに、

なお、一致するテンプレートファイルの検索に失敗した場合に警告しません。

自動的に消滅 していたようです。

いやあ、警告しないのが WordPress の普通なの?

まとめ

templates を略して tmp とすると、思わぬ所で一時ファイルと誤認される可能性があるので、避けましょう。Windows 系で NULPRN のファイル名が予約語でダメなのと、似たようなものです。

wordmove は、設定や rsync の動作を入念に調べないとですね。間違えても大丈夫なように、バックアップや予備ですぐに復元できるところまで準備しないと push は恐いですねえ……。

コメント

タイトルとURLをコピーしました