…WordPressでウェブサイト制作での話。
確かに自作テーマのはずなのに・・・
あれ?更新がある?どれどれ?
プラグインなら更新しよう…って数字の部分が「1」ってなってる。
更新するのは「2」箇所あるはず。
もう一個は?
この状況でテーマ一覧見たら本当に「Twenty Nineteen」に「新しいバージョンが利用できます。今すぐ更新」って出ていればいいのですが。
自分が作ったテーマに「更新しろ!」って出てた!
自作のテーマに「更新しろ!」って出ていた場合、これは誰かが実際に更新したのでしょうか。
…そうではありません。
この場合、絶対に「更新」してはいけません。
絶対に押しちゃいけないこの状況…なにかに似ている…
すごくきれいなテーマ使っているなあと思ったら…
WordPress系のお仕事をしていると他社(他者)が作ったサイトに機能追加やらメンテナンスやらすることがあります。
「このサイトすごくきれいだな〜、テーマ何使ってるんだろう?」
WordPress管理画面から「外観」→「テーマ」を見てみるとTwenty Twenty で…
Twenty Twenty やん!へえ、こんなこと出来るんだ!すげーな。
あ、「更新」出来るじゃん!「Hey! ポチッとな」・・・・
更新完了!っと、さて・・・・・
「あ゛あ゛あ゛あ゛あ゛〜〜〜〜〜」
デフォルトのテーマに戻ってしまいました。
「恐怖IT怪談 〜WordPress編」より ※そんなのありません。
これは、制作者が Twenty Twenty の子テーマを作らず、更に「Twenty Twenty」の名前を変えず改造して 作り終わったまま、クライアントになんの説明もなく(説明したけどクライアントが覚えていないのも含む)、なんだかわからないから呼ばれた業者がボッカーン!という恐怖体験アンビリーバボーです。
ジェニファーはなぜ「更新ボタン」を押してしまったのでしょうか…
ほかの制作者が作ったサイトはまずバックアップを取ってから調査しましょう!
肝に銘じましょうね。取り返しのつかないことになった人いっぱいいます。
さて、どうしたらよいか。なぜこうなるのか…です
上記2つの事例はテーマの名前が同じだから上書きアップデートされちゃうという点で同じことが起こっていたんです。
テーマの名前とは、ここに書いています。
Twenty Twenty の style.css より
/*
Theme Name: Twenty Twenty
Text Domain: twentytwenty
Version: 1.8
Requires at least: 4.7
Requires PHP: 5.2.4
Description: Our default theme for 2020 is designed to take full advantage of the flexibility of the block editor. Organizations and businesses have the ability to create dynamic landing pages with endless layouts using the group and column blocks. The centered content column and fine-tuned typography also makes it perfect for traditional blogs. Complete editor styles give you a good idea of what your content will look like, even before you publish. You can give your site a personal touch by changing the background colors and the accent color in the Customizer. The colors of all elements on your site are automatically calculated based on the colors you pick, ensuring a high, accessible color contrast for your visitors.
Tags: blog, one-column, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, block-patterns, block-styles, wide-blocks, accessibility-ready
Author: the WordPress team
Author URI: https://wordpress.org/
Theme URI: https://wordpress.org/themes/twentytwenty/
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
All files, unless otherwise stated, are released under the GNU General Public
License version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html)
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned
with others.
*/
英語が長いと ボボボボッボボボボボ って思っちゃいますが、大事なのは上から4行くらい。そのなかでも今回関係するのは1行目と3行目。
Theme Name: Twenty Twenty
この行が テーマ名 となっています。
Version: 1.8
この行はこのテーマのバージョンです。
「更新」が出るのはこういう原因です。
テーマの名前が同じ で 最新バージョンが今インストールされているものより新しい(数字が大きい)場合
更新しようとします。
要するに「自作のテーマ」であれば、テーマ名を変えればいいんです。
WordPress 公式テーマで検索しても出てこない名前ならかぶさることはないでしょう。会社名とか入れちゃいましょう。
Theme Name: GTI Custom Theme
とかですね。※会社名+サイト名だとわかりやすいかもしれないですね。
または、完全に防げる保証はありませんが、バージョンをひたすら大きくしちゃうか…です。おすすめしませんが。
Version: 999999999999999999999
とか。
これで「更新」が出る!ということはないと思います。
remove_action( 'load-update-core.php', 'wp_update_themes' );
add_filter( 'pre_site_transient_update_themes', function($a){return null;} );
このようなコードを functions.php に入れてテーマ更新通知をしないということも出来るようですが、それは更に万全を期すならということで。
まとめ
いや〜まとめっていうか 公式テーマ を改造した方、名前変えましょうよね〜ぇ。
保守をやっている会社で「テーマ」の更新はしてはいけないっていう運用されているところはちょっと考えたほうがいいかもしれません。
似た言葉で「WordPressの更新はしないでください」っていうのもあります。
そういうところは、その制作者がいなくなったらすごい工数(金額)のメンテナンスをしないといけない場合が多いので気をつけてくださいね。