ワードプレス(WordPress)のテーマをバージョンアップして、今まで表示されていたモノが消えたと言う経験はありませんか?
原因はバージョンアップによって、今までテーマファイルに書かれていたコードが消える為です。
現在は、元になるテーマのchildと言う別のテーマファイルを新しく作る事で、ファイルの上書きと言うトラブルを防ぐ事が出来ますが、今回は元のテーマを直接変更して改造した場合の回避方法です。
配布されているテーマを元に改造をした場合、新しいファイルが古いファイルを全て上書きしてしまいます。
改造個所は全て消えてしまうので、当たり前ですよね。
ではどうしたらこのトラブルを回避出来るのでしょうか?
幾つか回避方法があるのでご紹介します。
バックアップは常識です。
テーマファイルのバックアップは常識です。
バージョンアップ前に必ずテーマファイルのバックアップをしてください。
いきなりテーマを適用しない。
これは、ワードプレス内の管理画面で、いきなりテーマの更新をしないで、まずテーマの圧縮ファイルをパソコン内部にダウンロードして、バックアップファイルとの検証を行い、変更箇所を現在使用しているモノと、同じするようにします。
これで、トラブルはほぼ回避出来ます。
改造時、バージョンアップに備える為のテクニック
改造時にバージョンアップをした時の為に幾つかやっておくと便利な事があるので、ご紹介します。
改造個所を記録しておく。
テーマファイルの改造箇所はリストなどを使って、一覧を作っておけば、どこを改造したかが解るので、記録を残しておきましょう。
テキストファイルでも、エクセルなどでもいいですが、とにかく改造した箇所を記録しておきます。
例
functions.php に追記
●行以下に追記
//ショートコードを使ったphpファイルの呼び出し方法
function Include_my_php($params = array()) {
extract(shortcode_atts(array(
'file' => 'default'
), $params));
ob_start();
include(get_theme_root() . '/' . get_template() . "/$file.php");
return ob_get_clean();
}
add_shortcode('myphp', 'Include_my_php');
sampl.php 変更
●行を変更。
include(get_theme_root() . '/' . get_template() . "/$file.php");
を
include(get_theme_root() . '/' . get_template() . "/abc/$file.php");
に変更
と言った感じで記録を残しておけば、どのファイルの何処に変更をしたかが、一目で解ります。
変更箇所は、わかりやすいようにマークアップしておく。
上記のリストと併用する意味で、変更箇所はコメントアウトでマークアップしておけば、後から探す時に楽が出来ます。
例
<?php query_posts('showposts=2&cat=175'); //000 cat追記
000はファイル内を検索しやすい様に、独自の接頭辞を使う事で作業効率を上げています。
functions.phpとstyle.cssは追記する個所を決めておく
functions.phpとstyle.cssは一番変更する箇所が多いファイルです。このファイルに関しては、行によっての変更ではなく、追記の箇所を決めてその場所以外へは追記をしないようにします。そうする事で、新しいファイルに書き変わっても、まとめで新しいファイルに追記分を移せば簡単に修正が完了します。
style.cssは注意が必要です。
スタイルシートは一番変更する箇所が多いので、注意が必要です。
新しく追記するスタイルは追記箇所をまとめでおけばよいですが、部分的に変更する場所は、コメントアウトするなどの対応で個別に記録しておくことをお薦めします。
また最近のテーマファイルはレスポンシブでモバイル対応になっているので、モバイル部分の変更も忘れないようにしましょう。(モバイルの変更は忘れやすいので注意が必要です)
ベストの方法はテストサイトを別に作って、テストしてからテーマを適用する。
一番確実な方法は、テストサイトを別に作って、テストしてから本サイトにテーマを適用する事です。
テストサイトであれば、トラブルが起きても問題はありませんから、まずはテストサイトでの実証が重要です。
裏技
使い方は限定されてしまいますが、簡単な裏技をご紹介します。
ショートコードを使った改造
ショートコードはワードプレスの本文内(コメント欄からの入力)にあらかじめ決められたソースを表示させる機能です。
通常はHTML文しか対応していませんが、functions.phpにコードを追記をする事で、指定したphpファイルを読み込む事が出来るようになります。phpファイルを読み込む事で、動的な表示が可能になるので、デザインだけでなく、様々な表現が可能になります。
参考ページ:ショートコードを使ったphpファイルの呼び出し方法。
ワードプレスのコメント欄の情報はテーマファイルとは別なので、テーマのバージョンアップには関係しません。またテーマのバージョンアップは、元からあるファイルのみを上書きするので、追加で制作した独自のphpファイルはバージョンアップとは関係ないので上書きはされません。
この方法は基本的なデザイン(ヘッダーやフッター)では、使えない技ですが、TOPページ(index.php)などを固定ページで表示している場合などは、この方法を使う事でindex.phpに直接コードを記述せずに、本文(コメント欄)にショートコードを記述する事で、index.phpへの変更を最小限にする事が出来ます。
テーマのトラブルは他にも色々とありますが、バージョンアップによるトラブルは深刻な場合があるので、注意が必要です。
制作時(改造時)にどこまで対応(準備)しておくことが出来るのかで、バージョンアップの作業効率が全く変わってきます。
ワードプレス(他のCMSでもそうですが)を使ったホームページ制作では、こういった先を考えた作りをしておく必要があります。
地味な作業ですが、やっておくかおかないかで、トラブルの回避が変わるので重要な事だと思います。