[Pz-HBC][1.1.7]更新するとCSSが消える不具合解消?

前→ver1.1.0~ver1.1.4 次→ver1.2.0

外部リンクを「はてなブログカード」に置き換えて表示させるWordPressプラグイン「Pz-HatenaBlogCard」。

ver1.1.7を公式プラグインディレクトリにて公開しました。

ダッシュボードから更新すると今まで使用していたCSSが消えてしまい、カードを表示すべき場所が文字のみになってしまう不具合を修正しました。

原因

ダッシュボードからプラグインを更新すると、ディレクトリ(フォルダ)の中は全部一掃されるため、設定時に作成されたCSSは削除されてしまうため、更新後、設定画面で保存をしない限り、CSSが無い状態になっていました。

対応

「/wp-content/plugins/pz-hatenablogcard」ディレクトリ内は更新するたびに全て消えてしまうので、とりあえず「/wp-content/uploads/pz-hatenablogcard」ディレクトリにCSSを作成されるように修正しました。(このuploadsディレクトリは、ファイルを生成する他のプラグインでも一般に使われる場所です。記事の画像もこの配下です。)

1.1.6以前から1.1.7以降へ更新する場合には、CSSが消えてしまうので、初期設定のCSSを付属して対処しました。

装飾を復活させる場合、設定画面から「変更を保存」を押して、CSSを作成し直してください。

今後の方針

プラグインの更新時にも「register_activation_hook」が動くようなつもりでいたのですが、これはインストールして初めて有効化した場合や、手動で停止→有効化した場合に動くもののようです。

自分のサイトではダッシュボードから更新することがまず無いため、気付いていませんでした。

更新したときにも走るフックを調べたいのですが、「公式ディレクトリから更新する」という状態を作り出せないため、どうして良いやら分かりません。

plugin update hook とかがあれば、よいのですが無さそうです。

DBに格納しているバージョンと常に比較して、変わっていたらアクションを起こすのが一般的なようですが、処理速度も含めて検討したいと思います。

uploadsにファイルを作成する方法でないと、更新時に数秒~数十秒、スタイルシートがない時間ができてしまいます。

あとは不要時にディレクトリごと削除するかどうかなのですが…削除処理を書くのってこわいですね…。

広告