WordPress でカスタム関数プラグインを使用するためのガイド

公開: 2024-03-07

WordPress バックエンド開発者として 10 年以上、私はさまざまな方法を使って WordPress を自分や他の人のニーズに合わせて調整してきました。 最も一般的な方法は、WordPress カスタム関数プラグインを作成することです。 以下でわかるように、これが唯一の選択肢ではなく、常に正しい選択肢であるとは限りません。

この投稿は開発者に捧げますが、プロジェクト マネージャーも、これらのメソッドがチームのニーズにどのように適合するのか、いつ、どのように使用するのかを学ぶことができます。

これらは私が WordPress をカスタマイズするために使用している方法です。

  • コードをテーマのfunctions.phpに追加します。
  • WordPress カスタム関数プラグインを作成する
  • プラグインを使用してカスタム コード スニペットを管理する
  • ボーナス: プラグインを使用する必要があります

これらの各方法を詳しく見てみましょう。

function.php にコードを追加します。

WordPress が主にフロントエンドとバックエンド全体で PHP を使用していた「古い」時代、サイトに変更を加える最も簡単な方法は、テーマの function.php にコードを追加することでした。

これはまだ実行できます。勇気がある場合は、WordPress ダッシュボードのテーマ ファイル エディターを使用してください。

WordPress ダッシュボードのテーマ ファイル エディターを介して、functions.php ファイルにカスタム コードが追加されました。
テーマ ファイル エディターを使用して、テーマのfunctions.phpファイル内のカスタム コード。

時間が経つにつれて、これは WordPress をカスタマイズする私の好みの方法から、最も嫌いな方法へと変わっていきました。

主な理由は、 functions.phpがテーマにアタッチされているためです。 それがカスタム テーマではなく、誰かが更新した場合、私の調整は失われます。

解決策は、親テーマに関連する変更を含む子テーマを作成することです。

functions.phpファイルにこれ以上カスタム コードを追加しない主な理由は、実際には、このコードの大部分がプラグイン領域であり、テーマのみではなくサイト全体に機能を追加するためです。

カスタム コードをfunctions.phpに書き込む状況はまだ 2 つあります。

  1. コードはカスタムテーマまたは子テーマに関連しています。
  2. 多くの場合、 functions.phpに簡単にアクセスできるため、クイック変更を別の場所に移動する前にテストします。

また、単一のファイルは過度に複雑になる可能性があるため、 functions.phpは多くの変更をホストする場所ではないことに注意してください。 特に、変更に複数の PHP ファイルやその他のファイル タイプが必要な場合は、WordPress カスタム関数プラグインを作成することを選択します。

カスタム関数プラグインの作成

前述したように、サイトに追加するコードのほとんどは、実際にはテーマとは独立した機能を構築または拡張しています。

サイトにさらにカスタマイズを追加することがわかったら、カスタム関数プラグインを開始します。 通常、これにはサイトの名前が付けられています。これは、WP Major のプラグインを「WP Major Custom Functions」プラグインと呼ぶのと同じです。

ネーミングは重要です! まず、他の管理者は、このプラグインがサイトに関連しており、おそらくサイトの変更のみをホストしていることを確認できるようになります。

次に、プラグイン フォルダーとファイル名を一意に保つことで、WordPress サイトが wordpress.org プラグイン リポジトリ内に同じスラッグを持つプラグインで誤って上書きすることを防ぐことができます。

WordPress カスタム関数プラグインの作成は簡単です。 必要なのは、 wp-content/plugins内の 1 つの PHP ファイルだけです。 ただし、コードを構造化するために複数のファイルが必要になることがよくあり、JavaScript および CSS コード用のファイルを追加する必要がある場合があるため、最初に新しいフォルダーを作成する必要があります。

この例に従って、 wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.phpプラグイン フォルダーとメイン ファイルができたとします。

ファイルにヘッダーを追加して、プラグインの内容を WordPress に伝えましょう。 技術的に機能するには「プラグイン名」だけで十分ですが、より高度な例を見てみましょう。

 /** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */

これは、WordPress ダッシュボードの「プラグイン」の下にすでに表示されているはずです。

[プラグイン] メニューで有効化された WordPress カスタム関数プラグイン。
「プラグイン」セクションのカスタム関数プラグイン。

ここで、実際の PHP コードをファイルに追加してみましょう。

ヒント: サイトに FTP アクセスできない場合、または単に怠けている場合は、Pluginception プラグインを使用して何かをすばやく起動し、後で WordPress ダッシュボードのプラグイン ファイル エディターを介してコードを入力できます。

特定のサイトのすべてのコードを 1 つの専用のカスタム関数プラグインに入れる必要がありますか?

場合によります。 カスタム コードが複数のプロジェクトで使用されていることがわかっている場合は、それを別のプラグインに分離します。 同時に、特定のサイト専用のコードを 1 つのプラグインに収集します。 プラグインが少ないほど、維持する必要があるコード リポジトリも少なくなります。

ここまでは素晴らしいと思いませんか? ここ数年、より大きなプラグイン会社を管理し、サイトに 100 を超える調整を行っているときに、これらのカスタム プラグインが依然として開発者に重点を置いていることに気づきました。 そこで、次のセクションでは別のアプローチを見てみましょう。

コードスニペットにカスタム関数プラグインを使用する

私は大規模なプラグイン ビジネスでのほとんどの時間を、プラグイン ストアの技術面を担当していました。

テーマ固有ではないコードはすべて 1 つのカスタム関数プラグインに入れました。 空のカードの価格設定ページへのリダイレクト、アップセルの売り込み、ブラック フライデーのオファーなど、個々のプラグインやカスタマイズに対するすべての調整は文書化され、読みやすい名前が付いたさまざまなファイルに分散されています。

つまり、コードにアクセスできる人であれば誰でも「文書化され」、「読み取れる」ようになります。

私は常に調整を行ったり、それらに関する質問に答えたりするためにそばにいたにもかかわらず、これはほとんどのカスタム関数を処理する効率的かつ持続可能な方法ではないと感じていました。

ストアとウェブサイトの管理に関わる人が増えているため、ナレッジベース内の専用ページを最新の状態に保つことなく、調整について知る機会を提供したいと考えました。

解決策は、WordPress ダッシュボードのすべてまたはほとんどのコード スニペットを管理する WordPress カスタム関数プラグインをインストールすることでした。

私の個人的なお気に入りは無料の Code Snippets プラグインですが、他にもプラグインがあります。

コード スニペットを使用すると、ダッシュボードにすべてのスニペットを含む専用のメニュー項目が表示されます。

これで、管理者アクセス権を持つ誰でも調整内容を確認できるようになります。 各スニペットにはわかりやすい名前を使用し、メモ フィールドを使用して詳細を説明し、グループの変更にタグを割り当てます。

コード スニペット プラグインのコード スニペットのリスト。
カスタム コード スニペットのリスト。

私のタグは通常、調整されるプラグインまたはテーマの名前と、「WooCommerce」や「Checkout」など、これに関連するページのセクションです。

コード スニペット プラグイン ページのカスタム コード スニペットの例。
この例は、投稿の下に最終更新日を表示するカスタム コードを示しています。

適切な名前と適切な構造を選択すれば、誰でも調整を見つけて理解できるはずです。 私自身も含めて。 非常に快適なので、私は個人サイトでもこの方法を使用しています。

カスタム関数プラグインの使用は、時々 1 回だけ実行する必要があるクリーンアップ コードや、プロモーションを有効にするなどのフロントエンド側のアクションなど、一時的にのみ必要なコード スニペットに特に役立ちます。

これは安全ですか?

デフォルトでは、WordPress では「管理者」ロールを持つユーザーであれば誰でもバックエンドでプラグインとテーマファイルを編集できます。 カスタム コード プラグインの使用もそれと変わりません。 したがって、防御的になり、全員に必要な役割のみを与えるという古いルールが依然として適用されます。

開発者は、プラグイン自体を最初に読み込む必要があるため、プラグインを介してコードを管理する場合、ページ リクエストの非常に初期のフックの一部が使用できないことを知っておくとよいでしょう。 他のプラグインよりも前にカスタム コードを読み込む必要がある場合は、以下の [プラグインを使用する必要がある] オプションを確認してください。

必須プラグインのカスタム WordPress 関数

いわゆる「必須」プラグインは、プラグインの中でも特殊な種類です。

これらは他の「通常の」プラグインよりも前に実行されるため、特定のページの特定のプラグインをオンまたはオフにするために使用します。 このようなコードを使用すると、疑似 API やadmin-ajax.phpの呼び出しを高速化できます。

Must Use プラグインのもう 1 つの特徴は、プラグインがデフォルトで有効になっており、WordPress ダッシュボードから無効にしたり変更したりすることはできないことです。 そのため、管理者ユーザーであってもアクセスできない重要なコードに最適です。

ミュープラグインの作成

必須のプラグインは、フォルダーwp-content/mu-pluginsにホストされています。 このフォルダーは、新しい WordPress インストールには存在しません。 ただし、プラグインやホスティング会社によっては、ここにコンテンツを動的に追加する場合があります。

mu-plugin フォルダーに新しいプラグインを追加するには、上で示したカスタム プラグイン用のプラグイン ファイル ヘッダーを含む PHP ファイルをコンピューター上に作成する必要があります。 今回は、「Must Use」プラグインは自動的に更新されないため、一意の名前を選択することは重要ではありません。

新しいカスタム関数プラグインに満足したら、FTP 経由でwp-content/mu-pluginsフォルダーに手動でアップロードします。 mu-pluginsフォルダーが存在しない場合は作成します。

WordPress 管理パネルから「必須使用プラグイン」を変更することはできませんが、「プラグイン」>「必須使用」の下にリストされているプラ​​グインを確認できます。

WordPress 管理画面のプラグインの下にリストされている WordPress カスタム関数プラグインを使用する必要があります。
必須のプラグインには、「プラグイン」セクションに専用のタブがあります。

理想的には、Must Use プラグインは単一ファイルのプラグインです。 メインの PHP ファイルで追加のファイルを参照することはできますが、WordPress はサブフォルダーでそれらを見つけることができません。 ただし、複雑な Must Use プラグインを作成する場合は、メイン コードを通常のプラグインに移動し、他のすべてのプラグインの前に実行に必要なものをロードするためにのみ MU プラグインを使用することを検討してください。

結論

テーマのfunctions.phpファイル、スタンドアロン プラグイン、WordPress カスタム関数プラグインへの従来のコードの追加から、Must Use (mu-plugins) の使用まで、WordPress にカスタム コードを追加するさまざまな方法を検討してきました。 各方法には、さまざまなニーズやシナリオに合わせて、独自の利点と潜在的な欠点があります。

ご覧のとおり、これは開発者およびプロジェクト マネージャーとしての私にとっての旅でした。 私は現在でも、変更の種類と変更に誰がアクセスできるかに応じて、あらゆる方法を使用しています。

この記事が、ジュニアおよびシニアの開発者仲間の皆さんが、WordPress でカスタム関数プラグインとしてコードを追加する正しい方法について独自の決定を下すのに役立つことを願っています。 何か見逃した場合は、コメントで知らせてください。