WordPressの問題についてチュートリアルを探していると、functions.php や別のソースファイルを直接変更するよう求められることがよくあります。
私は、そうした小さなコード片をプラグインのような形にできる、もっときれいな方法はないのかと考えました。実際には簡単な方法があります。Code Snippets プラグインをインストールし、テーマファイルを編集する代わりに、そこへカスタムコードを置けばよいのです。
なぜ functions.php を直接編集しないのか?
functions.php を編集しても動作はしますが、いくつか欠点があります。
- テーマを切り替えると、そのコードは古いテーマと一緒に消えてしまいます。
- テーマが更新されると、不注意な変更は上書きされる可能性があります。
- 構文エラーがあるとサイトが壊れ、管理画面にアクセスしにくくなることがあります。
- どの変更がチュートリアル由来で、どれがテーマ本来のものなのか分かりにくくなります。
小さなカスタマイズであれば、スニペット用プラグインを使うほうが通常は安全で、管理もしやすくなります。
Code Snippetsをインストールする
WordPressのダッシュボードで次の操作をします。
- プラグイン -> 新規追加 に移動します。
- Code Snippets を検索します。
- プラグインをインストールして有効化します。
- Snippets -> Add New に移動します。
- スニペットに分かりやすいタイトルを付けます。
- チュートリアルにあるPHPコードを貼り付けます。
- 保存して有効化します。
スニペットには通常、チュートリアルが functions.php に追加するよう求めているものと同じPHPコードを入れられます。プラグインが明示的に求めていない限り、開始タグ <?php は含めないでください。
例
例えば、チュートリアルで functions.php に次を追加するよう書かれている場合です。
add_filter('the_generator', '__return_empty_string');
Remove WordPress generator meta tag のような名前で新しいスニペットを作成し、その1行をスニペットエディターに貼り付け、保存して有効化できます。
実用的なヒント
スニペットを有効化する前に、コードが完全であり、信頼できる情報源からコピーしたものか確認してください。スニペットがフロントエンドの動作を変更する場合は、プライベートブラウザーウィンドウでテストします。管理画面の動作を変更する場合は、コードがエラーを引き起こしたときに備えて、FTP、ホスティングのファイルマネージャー、またはWP-CLIを使ってプラグインを無効化する方法を把握しておきましょう。
また、各カスタマイズはそれぞれ別のスニペットに分けておくほうがよいです。例えば、ログインページの変更用に1つ、エディターの変更用に1つ、WooCommerceの変更用に1つ、といった形です。こうしておくと、問題を起こしている部分だけを無効化しやすくなります。
本物のプラグインを使うべき場合
Code Snippetsは、小さな変更、フィルター、アクション、簡単なヘルパー関数に向いています。カスタマイズが大きくなったり、独自の設定ページが必要になったり、データベーステーブルを追加したり、長期的なプロジェクトの一部になったりする場合は、小さなカスタムプラグインを書くほうがよい選択です。
しかし、チュートリアルで見つかる多くのWordPress調整には、Code Snippetsで十分です。コードをテーマの外に置き、すべての変更を1か所で見えるようにし、ソースファイルを直接編集せずにカスタマイズを有効化または無効化できます。
