プラグインを入れる前に、自分で書けないか考えるようになった
小さな機能のために、大きなプラグインを入れていました。判断を変えた話です。

この記事の結論
- 小さな機能に、大きなプラグインは重い
- 数行で済むなら、自分で書くほうが軽い
- ただし、安全に関わるものは既存を使う
- 小さな機能に、大きなプラグインは重い
- 数行で済むなら、自分で書くほうが軽い
- ただし、安全に関わるものは既存を使う
機能を足したいとき、まずプラグインを探していた。自分で書く選択肢も考えるようになってから、サイトが軽くなった。
プラグインの重さ
1つ入れると、何が起きるか理解した。
- すべてのページで読み込まれる
- 使っていない機能も含まれている
- 設定画面や、他の機能も付いてくる
2つ目が無駄だ。1つの機能のために、十数の機能を抱えることになる。
自分で書く判断
こういう場合は、自分で書いている。
- やりたいことが、明確に1つ
- 数行から数十行で済みそう
- 安全性に関わらない
3つ目が条件だ。入力を受け取るものや、権限に関わるものは書かない。
実際に書いたもの
自分で書いて済ませたものを挙げる。
- 記事の文字数を表示する
- 目次を自動で作る
- 特定のカテゴリを一覧から外す
- 画像に決まった処理を加える
どれも数十行で収まった。プラグインを入れていたら、それぞれ数千行が読み込まれていた。
プラグインを使う判断
逆に、自分で書かないものもある。
- 問い合わせの仕組み
- キャッシュや高速化
- 安全性に関わるもの
- 管理画面の機能
1つ目は何度も書いているが、入力を受け取るものは、既にあるものを使う。
頼むときの伝え方
自分で書くと決めたら、こう頼んでいる。
WordPressで次の機能を追加したいです。
(やりたいこと)
- 子テーマのfunctions.phpに書く形で
- プラグインは使わない
- 最小限の記述で
- 各行の説明を付けて
既存の機能で実現できる場合は、それを教えてください。最後の1行が重要だ。書く前に、書かずに済む方法が見つかることがある。
書いたものの管理
自分で書いた分は、記録を残している。
- 何のための記述か、コメントで書く
- いつ、なぜ追加したか
- どこに影響するか
3つ目を書いておくと、後から消すときに判断できる。
書いた後に測る
自分で書いた場合も、影響を確認している。
- 追加する前の、ページの表示時間を測る
- 追加した後に、もう一度測る
- 重くなっていれば、書き方を見直す
数十行でも、全ページで動く処理なら影響が出る。必要なページでだけ動くよう条件を付けると、負担が減る。記事ページでしか使わない機能が、トップでも動いていたことがあった。条件を1行足すだけで解決した。
増えすぎないように
自分で書く分も、増えると管理が大変になる。
- ファイルが長くなったら、分ける
- 使わなくなった記述は消す
- 定期的に読み返す
2つ目を忘れると、何のためか分からない記述が溜まる。
プラグインを減らした結果
見直して、いくつか外した。
- 自分で書ける機能のために入れていたもの
- 使っていないもの
- テーマの機能と重複していたもの
3つ目が意外とあった。テーマに同じ機能があるのに、気づかず入れていた。
プラグインを選ぶときの基準
使うと決めた場合も、選び方を決めている。
- 更新が続いているか。最終更新の日付を見る
- 使っている人の数
- 設定項目が少ないか。多機能すぎないか
3つ目を重視するようになった。多機能なものは、使わない機能も読み込まれるうえ、設定を把握しきれない。目的が1つに絞られたものを選ぶほうが、軽くて分かりやすい。更新が止まっているものは、問題が見つかっても直されないので避けている。
判断の順番
いまは、この順で考えている。
- WordPressの標準機能でできないか
- テーマの機能でできないか
- 数十行で書けないか
- それでも無理なら、プラグインを探す
1つ目と2つ目で済むことが、思ったより多かった。
まとめ
- 1つの機能のために、十数の機能を抱えることになる
- 明確に1つの目的で、数十行なら自分で書く
- 入力を受け取るものと、安全に関わるものは書かない
- 「既存の機能でできないか」を先に聞く
- 標準機能とテーマの機能で済むことが多い
関連記事
RELATED
半年で身についた作業の順番
コードを書く作業の進め方が、固まってきました。
控えの取り方を決めた話
取っているつもりで取れていなかったので、見直しました。
表示が遅い原因を、順番に調べた作業
感覚で直す前に、測って原因を特定しました。