WordPressで陥ったいくつかの致命的(?)な失敗談

WordPress 独学者にありがちな9つの致命的な失敗を読んで。

つかWordPressって基本独学じゃぁゲフンゲフン。

5. FTP 接続なしで functions.php を編集する」って、バックアップを取らずに編集するの間違いじゃないかと思います。

というか、そこいじるレベルなら、まずXAMPPとかMAMPとかの環境で動作チェックしてからアップするでしょう。というか、表示側のphpファイルでも、うっかり暴走するコードを書いていたりすると、サーバーを大変なことにしてしまうのではないかと。(ちなみに私はローカル上で暴走させた経験あります。XAMPPを終了させてパソコンのCPUファンがMAXで回るのを止めました。)

入門書にもXAMPP入れるところから書かれていることがほとんどですし、仮に暴走させても自分で止める手段を持っているローカル環境ってのは必需品だと思います。

あとねー、WordPressって、「functions.php にスペルミス等があると、WordPress が管理画面ごと機能しなくなる」ってことはあまりないです。少なくとも表示に使う関数でのスペルミスくらいはガン無視します。要はそのコード、全く機能しないんですよ。エラーも吐かずにしれっとサイトを組み立てていて、「あれ?思ったように変わらないぞ?」となる。

functions.phpで何かする際に陥りやすいのはこちら。

functions.phpなどのPHPコードのみのファイルで、phpタグを閉じてしまう

閉じちゃダメなんですって。閉じると、その外側にHTMLコードが記載されていると思っちゃうらしいですよ。phpタグの外側に、改行コード1つまでなら平気らしいのですが、2つあったりスペースがあったりすると、WordPressの画面が真っ白になります。管理画面も真っ白になるので入れない。

WordPressの恐ろしいところは、ローカルとかで編集している間全く問題ないのに、サーバにアップロードしてテーマを有効化したら真っ白になるとかいうのが普通に起こること。

WordPressというか、PHPってこういうところが、「がんばるドジッ子キャラ」なんですよねぇ。頼むからドンガラガッシャンやる前にエラー吐いてくれ。

逆に、サイトが真っ白になったらとりあえずfunctions.phpのあたりをまずチェックすると良いです。テーマを切り替えて真っ白になるとかいう状況であれば、テーマのインストールに失敗している可能性もあるので、ftpでそのテーマのフォルダをごそっと消してからもう一度入れなおすと動くことがあります。zipをアップロードしてインストールするタイプのテーマで、アップロードの工程を省いてftpでローカルから直接テーマフォルダを入れたら真っ白になったこともありました。(ちゃんとした手順で入れたら直った)

野良テーマを入れる

ダメ、絶対。特に良さげなテーマを無料でたくさん紹介しているようなサイトからダウンロードして入れると、ほぼ100%の確率でマルウェアに感染します。

「このテーマをカスタマイズしたいんだけど・・・」と相談を受けて、いろいろ調べているうちにふと、「あれ?これ野良テーマなの?」と。調べたところ、ログインをトリガにしてユーザー名やパスワードなどの入力されたデータを全て送信した上、サイト内に何かを取り込むというコードが仕込まれていました。多分、サイトを乗っ取って何かの踏み台にするためのコードなんだろうなぁと。幸い、顧客のサーバーではなく、仕込まれたコードも他のテーマファイルまで書き換えるほどのものではなかったので実害はありませんでしたが。ホント、公式ディレクトリにない無料テーマは入れちゃダメです。(有料のテーマでもセキュリティのプラグインを入れてチェックしてから使うほうがいいです)

管理者名とかテーブル接頭辞とかを変えて対策した気になる

なんかね、管理者名をadminから変えたところで、すぐに分かるらしいですよ。手抜きアタックを排除するために変えてますけどね。

そもそも、サブフォルダに入れて公開していないWordPressサイトにすら、スパムコメント入るんですよ? 見つける方法がある管理者名を変えても気休めでしょう。

セキュリティの最初は、パスワード強度を上げておくことでしょう。複数名で同じユーザー名使ってログインする(意味不)とか、顧客の担当者が楽できるようにとかいろんな理由で、簡単なパスワードを設定するのは絶対ダメです。パスワードを強くした上で、、できるのなら2段階認証使うとか、サーバーの管理画面からIPアドレスレベルで制限かけるとか。

よく設定とか分からないままにサーバーサイドのキャッシュプラグインを入れる

設定が不適切だと発生するらしいのですが、後からアクセスした人が、直前にアクセスした人のフォームへ書き込んだ内容が見えちゃったりすることがあるらしいですよ。私はこの辺よく分かってないのでキャッシュで高速化する類のプラグインは入れてません。

jQueryを読み込ませるコードをヘッダーに書いてしまう

正確にはjQueryを2重に読み込んでしまうというやつです。WordPressは内部にjQueryライブラリを持っていて、wp_headの関数で読み込みます。これを無効にせずにあるjQueryプラグインを使いたいからと新たにヘッダーに読み込むタグを書き込んでしまう。
WordPressが持っているjQueryライブラリでは、WordPressとは無関係に配布されているjQueryプラグインが動かないことがあります。プラグインのコードを少し手直し(カプセル化とか)することで使えるようになるのですが、そこは手を付けられないからと、新たにライブラリを読み込ませてしまうと。
で、WordPressって、2重読み込みでも特にエラーも吐かずに動くんですよ。たまに他のWordPressプラグインと衝突したりしてそれが動かなかったりするんですが。

CMSとしてWordPressを選ぶこと

半分冗談です。(半分は本気かよと)

CMSで一番簡単なのはMovable Typeだと思います。HTMLとCSSしか使えなかった時代にMT使ったことありますけど、意外とどうにかなりました。

一時期はMTの動向が怪しくなったり、バージョンアップのたびに管理画面が極端に変わるので「これは使えない」と無視していたのですが、最近は管理画面を極端に変えるのはやめたらしいので、CMSの選択肢としてまた浮上してきたように思います。(静的なサイトを吐き出すのでAWSとの相性もいいですし)

あと、日本ではオープンソースって一部のオカタイ系企業では使えません。こういう場面では責任を持ってサポートが提供される有料のMTの出番です。ま、最初に触って以降、なかなかMT使う案件には出会わないんですけどね。今後必要な機会が生じる可能性もあるので

で、話をWordPressに戻すと、最初に触ったMTと同じ感覚でWordPressを触ったらやけどしました。意外と難易度高いです。

自分でテーマを構築できるレベルまで来ると、かなり楽になるんですけどね。それでもググっただけでは解決しなくて、ぐぐった結果を応用してようやく目的達成とか。そんな感じ。

プラグインを入れすぎてアップデートが遅れる

プラグインは入れすぎるとプラグインの対応待ちでWordPress本体のアップデートがなかなかできないという状況に陥ります(テストサイトで試せばいいんですけどね)。この間、セキュリティ面でやばい状態が続くので、簡単な機能はプラグインに頼らず、自分でfunctions.phpとかに関数書いてショートコード作ったりするほうがメンテナンスしやすいです。プラグイン同士の衝突の心配も減りますし。

そんなんレベル高すぎだわと言う人はこの本(WordPress関数リファレンスガイド 藤本壱著 ソシム)でも読んでください。私はこれでいろいろできるようになったので。

既存テーマの編集なら簡単だろうと思う

WordPressをはじめたばかりだと、テーマをインストールしてカスタマイズ、というところからはじめざるを得ないのだけど、テーマのカスタマイズは、基本的にそのデザイン以外は手を付けられないと思っていたほうがいいです。高機能だけどかゆいところに手が届かないと言うか。ヘッダー画像のサイズ一つとっても、親テーマのfunctions.phpを書き換えなければいけない(つまりアップデートのたびに元に戻る)とか、いろいろ辛くなってきます。

クラッチからテーマを作成することに拘泥してしまう

一方、自分でテーマを作れるようになると、高機能すぎてややこしい既存テーマには二度と触れたくないと思うようになります。自分で作ったほうが早いと。

ただ、そこに満足してしまうと技術がまーったく身に付かなくなります。

公式ディレクトリで無料配布されているテーマや、有料で販売されているテーマを見ると、その作り方はかなり勉強になります。WordPressの奥は深いし、ググって出てくるネットの情報はバッドノウハウであることもあるので、いろんな手段で勉強することを怠ってはいけないです。はい。

ちなみに最近仕入れた情報では、query_posts関数を使ったカスタマイズは避けたほうが良いと。元々カスタマイズに使うことは想定されていない関数で、メインループを書き換えるのであっちこっちに不具合がおきるとのこと。また一度読み込んだデータを破棄して取り直すため表示速度も低下するらしいです。

そんなこんなで

私の体験してきた失敗、と言うか直面してきた問題とかヒヤリハット事例とかをいろいろ書いてみました。致命的、と言うほどの失敗には至っていないのですが、結構怖いのもありますね。野良テーマとか暴走とか。
WordPress触るようになって3年、案件いただくようになって1年弱なのですが、ほとんど毎日、いろんな課題に直面してはググってためし打ちして工夫して、ってな感じです。
WordPressが簡単だとはとても言えませんが、数日かけて調べて、自分のテーマに合うように工夫してコードを書いて、何度も失敗しては調べなおしてやっと動いたときの達成感はやヴぁいです。
大変だけど、面白いのがWordPressかなぁと思います。