wordpressにバージョン番号を入れたら開発が楽になった

wordpressに機能追加するのは正直つらい...
本番環境で開発できないし、ローカルだと本番DBとの差異がでちゃってデプロイしにくいし...
何故1つのDBにコンテンツとデザインとアカウント情報を共存させてるんだよ...

バージョン番号をつけて本番環境で直接開発する

とにかくwordpressの開発がしにくいので、もう本番環境で直接開発しちゃいますw

まず適当な場所にバージョンを取得できるコードを書く

<?php
global $version;
$version = 201601; // 現行バージョン
if($_GET['version'] == '201801') {
  $version = 201801;
}

これで通常は$versionに201601が入ってますが

/path/to/contents/?version=201801

こんな感じに書くと201801が入ります

このバージョン番号を使って開発をします
たとえば機能追加ならこんな感じ

<?php if($GLOBALS['version'] >= 201801) { //version201801 ?>
<div>追加機能だよーーー</div>
<?php } //version201801 ?>

これで通常は追加機能は表示されないけどURLでversionを指定した場合のみ表示さるようにできました

バージョンを上げて公開完了

先程のversion分岐を駆使して開発を進めたら、最後にバージョンを上げます

global $version;
$version = 201801; // 現行バージョンを上げる

これで公開完了
もちろん各コードに散らばったらif文も消しましょう
コーディング時にバージョン用if文に//version201801みたいなコメントを入れておくとgrepしやすいです

とはいえ本番環境での開発は怖い

本番環境で直接コーディングしてるとシンタックスエラーになっただけでサービスが止まって怖い...
なので実際はローカルで作ってgitで管理しつつこまめに本番に上げて作ってます
ちょっと面倒だけど常に本番で動作確認でるから安心です

まとめ

wordpressにバージョン番号を入れて出し分けできるようにしておくと開発が楽になるよ