WordPressプラグインの開発

Jennifer Aniston
Jennifer Anistonオリジナル
2025-02-21 10:48:10553ブラウズ

WordPressプラグインの開発

WordPressを使用してサイトをすばやく構築したことがある場合は、この人気のブログソフトウェアの機能を拡張するために提供される多くのプラグインの1つを使用した可能性があります。プラグインは、WordPressを非常に魅力的にする多くのことの1つです。画像ギャラリーまたは連絡先フォームが必要な場合は、おそらくダウンロードして使用できるプラグインが既に利用可能です。ただし、既存のプラグインから必要なものを十分に見つけることができない場合があります。この記事では、サイドバーにウィジェットを使用していくつかのテキストを表示するために例を掲載して、独自のWordPressプラグインを作成する方法を示します。

キーテイクアウト

    ブログソフトウェアの機能を拡張するWordPressプラグインは、ユーザーがニーズを満たす既存のプラグインを見つけることができない場合に作成できます。作成プロセスでは、WP-Content/Plugins Directoryに新しいサブディレクトリを作成し、PHPファイルのコメントに記述子を提供してプラグインを識別します。
  • WordPressは、カスタムウィジェットを作成するために拡張できるWP_Widgetクラスを提供します。 WP_Widgetクラスには、オーバーライドする必要がある4つのメソッドがあります:__construct()、form()、update()、およびwidget()。これらのメソッドは、ウィジェットを初期化し、カスタマイズのフォームを表示し、ウィジェットのプロパティを更新し、それぞれブログにウィジェットを表示します。
  • WordPressプラグインを作成する場合、適切な命名規則の使用、ユーザー入力の検証と消毒によるセキュリティの確保、プラグインをより多くの視聴者にリーチできるようにするなど、ベストプラクティスに従うことが重要です。すべてのテーマとの互換性は、WordPressコーディング標準を順守し、さまざまなテーマでプラグインをテストすることで実現できます。
  • WordPressプラグインのデバッグには、組み込みのデバッグシステムまたはデバッガーを使用したPHP IDEを使用することが含まれます。プラグインのセキュリティには、ユーザー入力の検証と消毒、Noncesを使用して要求ソースの検証、適切なファイル許可の設定、およびデータ操作のためにWordPress API関数を使用することが含まれます。定期的な更新とテストは、潜在的なセキュリティの脆弱性を特定するのに役立ちます。

メインプラグインファイル

プラグインは、WordPressインストールディレクトリ内のWPコンテンツ/プラグインディレクトリから自動的に検出されます。新しいプラグインを作成するときは、そこに新しいサブディレクトリを作成する必要があります。サブディレクトリの名前は、あなたが望むものにすることができます。賢明なオプションは、それをプラグインの名前と呼ぶことです。これはすでに別のプラグインで使用されている可能性があるため、「TextWidget」や「ShoppingCart」などの一般的な名前を避けてください。WordPressの他のユーザーに配布したい場合は問題を引き起こします。この例では、phpmaster_examplewidgetという名前のサブディレクトリを作成します。 WordPressは、PHPファイルのコメントに配置された記述子からプラグインが利用可能であることを検出します。記述子は、プラグインが何をしたか、作成した人、およびそのライセンス情報に関する基本情報を提供する必要があります。これは、WordPressがプラグインが存在し、アクティブ化する準備ができていることを識別するために使用するものです。この例プラグインには、新しく作成されたphpmaster_examplewidgetディレクトリに配置されたファイルの上部に定義が含まれます。ファイルの名前も任意ですが、意味のある名前を提供することをお勧めします。この例では、ファイルwidget_init.phpを呼び出します。
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
これは、WordPressに作成する任意のプラグインに必要な構造です。これで、ログインしてWordPressのプラグイン管理画面を確認すると、新しいプラグインがアクティブ化できるようになります。

WordPressプラグインの開発

プラグインを説明するコメントセクションに入力したすべての情報をここに表示できます。必要に応じて今すぐアクティブ化できますが、何かを行う前に機能を追加する必要があります。 この定義があるファイルは、プラグインに関連付けられたコードの開始点と見なされます。定義のコメントの後に表示されるコードが実行され、プラグインとその機能を初期化する機会が与えられます。

wordpressウィジェット

WordPressは、wp_widgetという名前の拡張できるクラスを提供します。拡張すると、テーマが提供するサイドバーが独自のウィジェットを利用できます。 WordPressは、wp_widgetを拡張する「最近の投稿」や「アーカイブ」など、いくつかのデフォルトウィジェットを備えています。 WP_Widgetクラスは、上書きする必要がある4つの方法を提供します。
  • __ construct() - 親コンストラクターを呼び出して、クラス変数を初期化
  • form() - 管理ビューにウィジェットのフォームを表示して、ウィジェットのプロパティをカスタマイズします
  • update() - 管理ビューのフォームで指定されたウィジェットのプロパティを更新
  • widget() - ブログにウィジェットを表示

コンストラクター

コンストラクターは、おそらく書いた他のコンストラクターと同じです。ここで覚えておくべき重要なことは、3つの引数を取得できる親コンストラクターを呼び出すことです。ウィジェットの識別子、ウィジェットのフレンドリー名(これは管理ウィジェット画面のウィジェットのタイトルとして表示されます)、および配列ウィジェットのプロパティの詳細(「説明」値のみが必要です)。
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
基本的なウィジェット構造を配置すると、ウィジェットを登録し、これが他のすべてのウィジェットが初期化されているときに実行されることを確認する必要があります。レジスタのウィジェットは、wp_widgetを拡張するクラスの名前であるregister_widget()関数を介して行われます。ウィジェットを登録するためのこの呼び出しは、適切な時期に呼び出される必要があるため、使用する特定のWordPressフックは「Widgets_init」と呼ばれます。ウィジェットの登録をフックに関連付けるには、フックの名前を最初の引数として、2番目の引数として実行する関数をadd_action()を使用します。 (2番目の引数は、関数の文字列名または閉鎖のいずれかです。)このコードは、widget_init.phpで作成されたプラグインの記述子の直接的に移動する必要があります。
<span><span><?php
</span></span><span><span>class TextWidget extends WP_Widget
</span></span><span><span>{
</span></span><span>    <span>public function __construct() {
</span></span><span>        <span><span>parent::</span>__construct("text_widget", "Simple Text Widget",
</span></span><span>            <span>array("description" => "A simple widget to show how WP Plugins work"));
</span></span><span>    <span>}
</span></span><span><span>}</span></span>
登録および初期化されたので、使用可能なウィジェットを見ることができます。

form()メソッド

ここのウィジェットの例では、ブログで表示されるときにタイトルと表示されるテキストを入力できるようにする必要があります。したがって、ウィジェットのこれらの2つの側面を修正するには、これらの値を促すためにフォームを作成する必要があります。フォーム()メソッドは、ウィジェット管理画面で使用され、フィールドを表示します。フィールドは、後でサイト自体のウィジェットの機能を変更するために使用できます。このメソッドは、ウィジェットに関連付けられた変数の$インスタンス配列である1つの引数を取ります。フォームが送信されると、ウィジェットは更新()メソッドを呼び出します。これにより、新しい値で$インスタンスでフィールドを更新できます。その後、ウィジェット()が呼び出され、$インスタンスを使用して値を表示します。
<span><span><?php
</span></span><span><span>add_action("widgets_init",
</span></span><span>    <span>function () { register_widget("TextWidget"); });
</span></span><span><span>?></span></span>
wp_widgetのget_field_id()メソッドとget_field_name()メソッドを使用して、それぞれフォームフィールドのIDと名前を作成します。 WordPressは、使用中の他のウィジェットと衝突しないように、あなたのための一意の識別子を生成し、フォームを送信すると、値は関連する$インスタンスアレイアイテムを更新します。 Passed $ Instance引数を使用して、既に設定されている場合にフォームフィールドに値を入力できます。 これは、管理者ビューでフォームがどのように見えるかです。

WordPressプラグインの開発

Parent
要素自体、保存ボタン、および削除および閉じるリンクは、WordPressによって自動的に生成されるため、それらを明示的にコーディングする必要はありません。フォームは変数を投稿し、更新()メソッドを呼び出して、新しい値を$インスタンスに挿入できるようにします。

更新()メソッド

アップデート() ウィジェットが使用する前に、インスタンス変数を検証および消毒する機会を提供します。ここでは、古い値に基づいて意思決定を行い、それに応じて新しい値を更新できます。 update()は、ウィジェットを表示するときに使用するアイテムを含む配列を返す必要があります。 WordPressは、2つの引数、フォームの新しいインスタンス値を持つ配列と、元のインスタンス値を持つ配列を渡します。
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
WordPressはこれらの値をあなたのために持続するので、その機能を実装する必要はありません。

widget()メソッド

ウィジェット()メソッドは、ブログのサイドバーに表示されるときにウィジェット内にコンテンツを表示するために使用されます。メソッドからの出力により、ブログページが表示されます。 WordPressはWidget()メソッド2つの引数を渡します。1つ目は$ argsです。これはウィジェットの情報を詳細に詳細にする配列です。2番目は、ウィジェットに関連付けられたデータを出力するために使用できる$インスタンスです。 $ argsは本当にこの例に影響しないので、私はそれに入りません。 $インスタンスが2番目の引数であることを覚えておいてください。
<span><span><?php
</span></span><span><span>class TextWidget extends WP_Widget
</span></span><span><span>{
</span></span><span>    <span>public function __construct() {
</span></span><span>        <span><span>parent::</span>__construct("text_widget", "Simple Text Widget",
</span></span><span>            <span>array("description" => "A simple widget to show how WP Plugins work"));
</span></span><span>    <span>}
</span></span><span><span>}</span></span>
これにより、サイトで次の可能な出力が生成されます。

WordPressプラグインの開発

そしてそれだけです!これらすべてをまとめると、WordPressインストールのブログ側にテキストを表示するための非常にシンプルなウィジェットが提供されます。

要約

WordPressがそれを検出およびアクティブ化し、WP_Widgetクラスを拡張して独自のウィジェットを作成できるようにするWordPressプラグインの必要な基礎に精通しています。この記事で紹介したウィジェットの例は、管理者が提供する構成フォームを介してウィジェットのディスプレイをカスタマイズする機能を示しています。単純ですが、使用する基本的なWP_Widgetメソッドを強調し、この例から簡単に移動し、独自のWordPress駆動型サイトの機能を高めることができます。この例のコードは、phpmasterのgithubアカウントで入手できるため、コード全体をご覧ください。 Bioraven / ShutterStock経由の画像 WordPressプラグインの開発に関するよくある質問

WordPressプラグインの開発を開始するにはどうすればよいですか?

WordPressプラグインの開発を開始するには、PHP、HTML、CSS、およびJavaScriptを基本的に理解する必要があります。これらのスキルが得られたら、WordPressプラグインディレクトリに新しいフォルダーを作成することから始めることができます。プラグインの後にこのフォルダーに名前を付けます。このフォルダー内で、同じ名前のPHPファイルを作成します。このファイルは、プラグインのメインファイルとして機能します。このファイルには、WordPressにプラグインがここに存在することを伝えるヘッダーコメントを含める必要があります。基本構造をセットアップした後、プラグインの機能を書き始めることができます。適切な命名規則を使用して、他のプラグインとの機能名の競合を回避し、可能な限りWordPressフックとフィルターを使用し、ユーザー入力を検証および消毒することでプラグインが安全であることを保証し、プラグインを作成することにより、プラグインが安全になるようにしますより多くの聴衆にリーチするために翻訳可能。また、将来の参照と更新のためにコードを清潔にし、適切に構成することも重要です。テーマは、利用可能な膨大な数のテーマのために困難な場合があります。ただし、コアファイルを変更する代わりにフックとフィルターを使用し、さまざまなテーマでプラグインをテストするのではなく、フックとフィルターを使用して、WordPressコーディング標準を順守すると、互換性を確保できます。また、プラグインユーザーに明確なドキュメントとサポートを提供することもお勧めします。

WordPressプラグインをデバッグするにはどうすればよいですか?

WordPressプラグインのデバッグには、開発中に発生する可能性のある問題やエラーを特定して修正することが含まれます。 WordPressには、WP-Config.phpファイルで有効にできる組み込みのデバッグシステムが付属しています。 wp_debugをTrueに設定することにより、WebサイトのフロントエンドにPHPエラーを表示できます。さらに、デバッガーを使用してPHP IDEを使用すると、コードを介して問題をより効率的に見つけるのに役立ちます。 WordPressプラグインにはいくつかのステップが含まれます。まず、SQL注入攻撃を防ぐために、常にユーザー入力を検証および消毒します。次に、Noncesを使用して、リクエストのソースを確認します。第三に、プラグインファイルに適切なファイル権限を使用します。第4に、カスタムSQLクエリの代わりに、データ操作にWordPress API関数を使用します。最後に、潜在的なセキュリティの脆弱性については、プラグインを定期的に更新およびテストします。

WordPressプラグインをSEOフレンドリーにするにはどうすればよいですか?これはSEOの重要な要素であるため、TはWebサイトの読み込み速度に悪影響を及ぼします。また、プラグインがWebサイトにコンテンツを追加した場合は、検索エンジンで簡単にクロールでき、インデックスできることを確認してください。プラグインに画像が含まれている場合は、ALTタグを追加してください。最後に、プラグインが人気のSEOプラグインと互換性があることを確認してください。

WordPressプラグインを更新するにはどうすればよいですか?プラグインのヘッダーコメントの番号。更新されたバージョンをテストし、正しく機能するようにしたら、WordPressプラグインリポジトリにアップロードできます。プラグインがWordPressプラグインリポジトリでホストされている場合、ユーザーにWordPressダッシュボードで更新が通知されます。ユーザーフレンドリーには、必要に応じてスクリーンショットやビデオなど、明確で詳細なドキュメントを提供することが含まれます。また、プラグインの設定とオプションが直感的で理解しやすいことを確認してください。迅速かつ有用なサポートを提供すると、ユーザーエクスペリエンスが大幅に向上する可能性があります。

WordPressプラグインをテストする方法は、WordPressプラグインをテストするには、さまざまなシナリオとさまざまなテーマやプラグインで機能をチェックすることが含まれます。ユニットテストには、Phpunitなどの自動テストツールを使用できます。また、デバッグツールを使用してエラーや問題を特定することを検討してください。また、プラグインをリリースする前にフィードバックを提供できるベータテスターがいることをお勧めします。

WordPressプラグインを収益化するにはどうすればよいですか?

WordPressプラグインを収益化する方法はいくつかあります。基本的な機能を備えた無料バージョンと、高度な機能を備えたプレミアムバージョンを提供できます。無料のプラグインに有料アドオンを提供することもできます。別のオプションは、プラグインを無料で提供し、有料サポートまたはカスタム開発サービスを提供することです。

以上がWordPressプラグインの開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。