WordPressのfunctions.phpを編集するぐらいならプラグインを作成します。

by

in

WordPressでの機能実装をする際、よく「テーマのfunctions.phpファイルに以下のコードを挿入します」などがあるのですが、これはテーマを更新すると消えてしまうので私はあまりやらないかな。

というのが今回の記事のテーマです。

functions.phpの危険性と代替案

WordPressでのよくあるコード挿入方法として、テーマのfunctions.phpファイルにコードを直接書き込むことは非常に一般的な方法です。

しかし、この方法にはいくつかの注意点があります。

テーマ更新時のコード消失リスク

functions.phpに直接コードを書き込むと、テーマを更新した際にカスタマイズしたコードが消えてしまうリスクがあります。

これは特に、テーマのアップデートが行われる場合に問題となるため、コードを追加した時の確認時には全く問題にならず、WordPressの更新を行ったら何故か出来ていた機能が動かなくなった、というアップデートの苦い経験に繋がってしまい更新をしなくなるようになってしまいます。

私自身の経験に基づいた代替案の提案として、

このリスクを回避するためにはプラグインを作成して機能を実装することを推奨しています。特に、WP-CLIを使えば効率的にプラグインを作成でき、テーマに依存しない安全な方法で機能を追加できます。

プラグイン作成のメリット

プラグインを作成することには多くのメリットがあります。

以下にその主な利点を挙げます。

  • テーマ依存からの脱却
    プラグインを利用することで、テーマに依存することなく機能を追加できます。これにより、テーマを変更しても機能が失われる心配がなくなります。
  • アップデートやコード管理のしやすさ
    プラグインを使用することで、コードが分離され、整理された状態を保つことができます。これにより、アップデートリスクの軽減や機能追加と変更が容易になり、コードのメンテナンス性が向上します。
  • 再利用性の向上
    プラグインとして機能を実装すると、他のプロジェクトでも簡単に再利用することができます。一度作成したプラグインを異なるWordPressサイトにインストールするだけで、同じ機能を利用できるため、開発効率が上がります。

プラグインを作成できるWP-CLIとは?

プラグインでコードを実装することでメリットが多いと言う事はお伝えしましたが、プラグインを作る事にハードルを感じる方もいらっしゃるかと思います。ですが、案外プラグインの作成は簡単でWP-CLIを使うことで気軽にプラグインを作れてしまいます。

WP-CLIは、コマンドラインからWordPressを管理するための強力なツールです。

これにより、WordPressの操作を効率的に行うことができ、特にプラグイン作成や更新などの作業をスムーズに進められます。

  • WP-CLIの概要と利便性
    WP-CLIはWordPressの管理をCLI(コマンドラインインターフェース)で行うためのツールです。コマンドを使ってテーマやプラグインの管理、データベース操作などが可能で、GUI操作よりも効率的に作業が進められるのが特徴です。
  • WordPressを効率よく管理するためのツールとしての価値
    マウス操作がメインとなるGUIを使用せずに、キーボード操作でのコマンド一つで作業を実行できるCUIなため、大量の操作を迅速に行うことができます。特に、開発者にとってはプラグインの開発やメンテナンス作業の時間を短縮するうえで非常に役立ちます。また、スクリプトを使用して一連の操作を自動化することも可能です。
  • 必要な準備(インストールと初期設定)
    WP-CLIを使用するには、まずインストールが必要です。WP-CLIはほとんどのサーバー環境に対応しており、公式サイトからインストールガイドに従ってセットアップすることができます。一般的なレンタルサーバー(たとえばXserverなど)では既にインストールされています。インストール後は、wp --infoコマンドで正常にインストールされたか確認してください。

WP-CLIでプラグインを作成する方法

今回はサンプルとして問い合わせフォーム作成で有名なContactForm7でGoogleアナリティクスにイベント送信する公式のサンプルをプラグインで追加していきます。

まずは何もしないプラグインを作ります。

以下のコマンドによってプラグインを作成できます。

$ cd <WordPressのディレクトリ>
$ wp scaffold plugin contact-form7-custom
Success: Created plugin files.
Success: Created test files.

これで何も実行しないプラグインが作成されます。

作成されたファイルは以下で確認できます

$ cd wp-content/plugins/contact-form7-custom
$ ls -1
Gruntfile.js
bin
contact-form7-custom.php
package.json
phpunit.xml.dist
readme.txt
tests

実際に実行されるコードを記述するファイルは contact-form7-custom.php とプラグイン名と同じファイルになっており、テーマファイルでの functions.php に記述する内容をそのまま記載します。

// @see https://contactform7.com/ja/tracking-form-submissions-with-google-analytics/

add_action( 'wp_footer', function () {
?>
<script>
document.addEventListener( 'wpcf7mailsent', function ( event ) {
    gtag( 'event', 'wpcf7_submission', {
        'event_category': event.detail.contactFormId,
        'event_label': event.detail.unitTag
    } );
}, false );
</script>
<?php
}, 10, 0 );

これでコードの追加は完了、WordPressの管理画面に戻り、プラグインの有効化をすれば実行されます。

WP-CLIの活用例

プラグインの作成以外にも、WP-CLIを使うことで様々なことが行えます。

  • プラグインの更新や削除を簡単に行う方法
    WP-CLIを使えば、wp plugin update <plugin-name>wp plugin delete <plugin-name> といったコマンドで、簡単にプラグインの更新や削除が行えます。複数のプラグインを一括で操作できるため、メンテナンスの効率が飛躍的に向上します。
  • デプロイや設定管理への応用
    WP-CLIは、WordPressの設定を自動化するための強力なツールです。たとえば、サイトの設定変更を一括で行う場合や、複数の環境(ローカル・ステージング・本番)でのデプロイ作業を自動化することが可能です。wp config setwp option updateといったコマンドを使うことで、設定の変更も効率的に管理できます。

プラグイン作成時の注意点

セキュリティを意識したコーディング(例:入力データの検証、エスケープ処理)

プラグイン開発において、セキュリティは最も重要な要素の一つです。

特に、外部からの入力データは常に信頼できないものとみなし、適切に検証・エスケープ処理を行うことが求められます。SQLインジェクションやクロスサイトスクリプティング(XSS)などの攻撃を防ぐためにも、sanitize_text_field()esc_html()などのWordPressが提供する関数を活用しましょう。

テスト環境での動作確認の重要性

開発したプラグインを本番環境でいきなり使用することは避けましょう。

テスト環境で十分に動作確認を行い、バグや予期しない挙動を防ぐことが必要です。

テスト環境を用意することで、本番サイトの安定性を維持し、ユーザーへの影響を最小限に抑えることができます。

チームでの開発時に留意すべきポイント

チームでプラグインを開発する際は、コードスタイルの統一やバージョン管理ツール(例えばGit)の活用が重要です。

コードレビューを実施することで、品質を向上させるとともに、他の開発者と知識を共有することができます。また、適切なコメントを追加し、コードの意図を明確にすることで、将来的なメンテナンス性を向上させることも心がけましょう。

結論:WP-CLIを使ったプラグイン作成で得られる成果

  • コードの管理が楽になる
    プラグインを使うことで、テーマに直接手を加える必要がなくなり、コードがテーマから分離されるため、管理が格段にしやすくなります。
  • 更新時のリスクを軽減できる
    テーマの更新でカスタムコードが消えるリスクをなくし、安心してテーマやWordPressのアップデートを行うことが可能になります。
  • プロジェクトの質を向上させる
    プラグインとして独立した機能を作ることで、コードの品質と再利用性が向上し、プロジェクト全体のクオリティを高めることができます。
  • 自由度が広がることでよりクリエイティブな実装が可能
    プラグインによってテーマの制約を超えた自由な機能拡張が可能となり、よりクリエイティブで効果的な実装ができます。

参考リンクと次のステップ

まとめ

今回の記事では、functions.phpに直接コードを記述するリスクと、プラグインを作成することで得られる多くのメリットについて説明しました。

WP-CLIを使うことで、プラグインの作成が手軽になり、コード管理の効率化、セキュリティ強化、自由度の向上などが期待できます。

テーマに依存せず、再利用可能な形で機能を実装することが、WordPress開発におけるベストプラクティスの一つです。ぜひWP-CLIを使って、WordPress開発を次のレベルに引き上げてください。

レンタルサーバーを最大限使いこなすための方法

Laravelの記事を厳選して紹介

投稿者


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA