準備作業と環境設定
コードの執筆を始める前に、安定しておりプロフェッショナルな開発環境を整えることは成功のための基本です。これにより、コーディングの効率を向上させるだけでなく、プラグインがさまざまな環境で問題なく動作することも保証できます。
ローカル開発環境の設定
ローカルサーバー環境用のスイートを使用することをお勧めします。例えば、Local by Flywheel、XAMPP、MAMPなどです。これらのツールを使えば、Apache、MySQL、PHPをワンクリックでインストールでき、オンラインサーバー環境を完璧に再現できます。また、使用するPHPのバージョンが対象のWordPressバージョンの要件に合致していることを確認してください。一般的には、より良いパフォーマンスとセキュリティのためにPHP 7.4以上のバージョンを使用することが推奨されます。
コードエディターとツールの選択
機能豊富なコードエディタは非常に重要です。Visual Studio Code、PhpStorm、Sublime Textなどはどれも優れた選択肢であり、構文のハイライト表示、コードヒント、デバッグ機能などを提供しています。さらに、バージョン管理ツールであるGitをインストールすることは、コードの変更管理、チームワーク、バックアップを行うための業界標準となっています。
推薦図書 究極のWordPressプラグイン開発ガイド: 入門から実践マスターまで。
最初のプラグインファイルを作成しましょう。
WordPressプラグインの最も核心的な部分は、そのメインファイルです。このファイルにはプラグインの実行コードだけでなく、特定のヘッダーコメントを通じてWordPressシステムにプラグインのメタ情報も宣言されています。
プラグインのメインファイルの構造
すべてのプラグインにはメインのPHPファイルが必要です。このファイルの名前は、通常、プラグインの機能に基づいて名付けられます。例えば: my-first-plugin.phpファイルの冒頭には標準的なプラグインヘッダーのコメントを含める必要があります。これはWordPressがプラグインを認識するための鍵となります。
<?php
/**
* Plugin Name: 我的第一个自定义插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于演示的 WordPress 自定义插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/
このコメントは、WordPressに対して、バックエンドの「プラグイン」ページにプラグインの名前や説明などの情報を表示するよう指示しています。 Text Domain 国際化のために使用され、後続の翻訳作業の準備を行います。
プラグインの有効化と無効化
メインファイルを作成した後、それをWordPressのインストールディレクトリに置く必要があります。 /wp-content/plugins/ フォルダ内にあります。個別に保存することもできますし、専用のディレクトリを作成してそこに保存することもできます(例:「my_files」など)。 /wp-content/plugins/my-first-plugin/その後、メインファイルをそのディレクトリに置きます。作業が完了したら、WordPressの管理画面にログインし、「プラグイン」ページに移動します。そこで新しいプラグインが表示されるので、「有効にする」をクリックしてください。
ワードプレスのコアメカニズムを理解する:フックとフィルタ
WordPressの強力さと柔軟性は、その「フック(Hooks)」システムに大きく依存しています。プラグインはこれらのフックに「マウント」することで、コアコードを変更することなくWordPressの動作を変更したり拡張したりすることができます。
推薦図書 WordPressプラグイン開発の徹底解説:ゼロからカスタム機能の拡張を構築する。
アクションフックの使用方法
アクションフック(Action Hooks)を使用すると、特定のタイミングでカスタムコードを実行することができます。例えば、記事が公開されたとき、ユーザーがログインしたとき、またはバックエンド管理ページが読み込まれたときなどです。 add_action() この関数を使用すると、自分の関数を指定されたフックにマウントすることができます。
以下の例では、ウェブサイトのフロントページの下部にカスタムテキストを追加する方法を示しています。私たちは wp_footer このアクションフック。
function myplugin_add_footer_text() {
echo '<p style="text-align:center;">このウェブサイトをご利用いただきありがとうございます!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );
フィルターの使用
フィルター(Filters)は、処理の過程で生成されるデータを変更するために使用されます。アクション(Actions)とは異なり、フィルターは入力値を受け取り、変更後の値を返す必要があります。 add_filter() 関数を使用してフィルターを適用します。
例えば、以下のコードは記事のタイトルの末尾に表示される内容を変更し、すべてのタイトルに接尾辞を付加しています。私たちは the_title このフィルター。
function myplugin_modify_title( $title ) {
// 确保只在主循环中修改
if ( is_single() ) {
return $title . ' [推荐阅读]';
}
return $title;
}
add_filter( 'the_title', 'myplugin_modify_title' );
为插件添加设置页面
成熟したプラグインでは、ユーザーに設定オプションを提供することが一般的です。WordPressでは、プラグイン用の設定ページを作成するための標準化された方法があり、それを管理画面のメニュー内のさまざまな場所に追加することができます。
管理メニューアイテムを作成する
まず、あなたは以下の手順を使用する必要があります: add_action( ‘admin_menu’, … ) 新しいメニューページを登録するための機能が用意されています。WordPressでは、さまざまなレベルのメニューを追加するための関数が多数提供されています。 add_menu_page()(トップメニュー)または add_options_page()(「設定」サブメニューに追加します。)
推薦図書 WordPressプラグイン開発完全ガイド:入門から上級まで、機能豊富なプラグインの作成方法。
以下のコードは、シンプルなトップメニューページを作成する方法を示しています。 myplugin_settings_page_html そのページのHTMLコンテンツのレンダリングを担当しています。
関数 myplugin_add_menu() {
add_menu_page(
‘マイプラグイン設定’, // ページタイトル
‘My Plugins’, // メニューのタイトル
‘manage_options’, // 必須パーミッション
‘myplugin’, // メニュースラグ
‘myplugin_settings_page_html’, // コールバック関数
‘dashicons-admin-generic’, // アイコン (オプション)
20 // 位置 (オプション)
);
}
add_action( ‘admin_menu’, ‘myplugin_add_menu’ );
function myplugin_settings_page_html() { // ユーザ権限をチェックする。
// ユーザーのパーミッションをチェックする
if ( ! current_user_can( ‘manage_options’ ) ) { // ユーザーの権限をチェックします。
return; } // ユーザー権限のチェック
}
?>}
<div class="“wrap”">
<h1></h1>
<form action="/ja/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
<?php
// 输出设置字段
settings_fields( ‘myplugin_options’ );
do_settings_sections( ‘myplugin’ );
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="ja"/></form>
</div>
あなたのアカウントは有効です。あなたはログインしています。
登録設定、フィールド、およびセクション
上記のフォームでデータを保存できるようにするには、WordPressの設定APIを使用する必要があります。これには、以下の手順が含まれます: register_setting() 設定グループを登録するには、以下の手順に従ってください: add_settings_section() セクションを追加し、そして add_settings_field() 具体的なフィールドを追加してください。
このプロセスは通常、 admin_init フック内で処理が完了しました。APIを設定すると、データの検証や保存が自動的に行われます。 wp_options 表)とセキュリティ(Nonceチェック)により、開発作業が大幅に簡素化されました。
概要
WordPressプラグインの開発は、環境の構築や基本ファイルの作成から始まり、フックシステムの深い理解と活用、そしてプラグインのユーザーインターフェースの構築に至るまで、体系的な工程です。WordPressのコーディングスタンダードやベストプラクティス(プラグインヘッダーのコメントの使用、安全な関数名の前缀の付け方、国際化対応、APIの設定など)を遵守することで、プラグインの安定した動作を保証するだけでなく、メンテナンスや拡張も容易になります。その鍵は、WordPressが提供する豊富なフックエコシステムを活用し、モジュール化された、非侵襲的な方法でウェブサイトの機能を強化することにあります。このガイドの実践を通じて、ゼロから機能が完全で構造が明確なカスタムプラグインを構築するための基本的な手順をマスターしました。
FAQ よくある質問
プラグインを開発するには、どのようなプログラミングの基礎が必要ですか?
WordPressのコア部分およびプラグインは主にPHPで書かれているため、しっかりとしたPHPの基礎知識が必要です。また、HTML、CSS、JavaScript(特にjQueryについても基本的な理解が必要です。WordPressの古いコードにはjQueryが多く使用されているためです。これらの知識により、フロントエンドの表示やインタラクションの処理がスムーズになります。基本的なMySQLデータベース操作の概念についても理解しておくと役立ちます。
プラグインの関数名が他のプラグインと衝突するのを避けるにはどうすればよいでしょうか?
衝突を避けるための最善の慣行は、すべての関数、クラス、定数、変数に一意の接頭辞を付けて名前を付けることです。この接頭辞は十分にユニークである必要があり、通常はプラグインの名前やその略称に関連しています。例えば、プラグインの名前が「Awesome Widget」であれば、次のような接頭辞を使用することができます: aw_、awesome_widget_ または AW_ 作为前缀。将代码封装在类(Class)中也是现代 WordPress 插件开发中广泛采用的、更优雅的避免冲突和组织代码的方式。
プラグインはどのディレクトリに保存すべきですか?
プラグインファイルは、WordPressのインストールディレクトリ内に保存する必要があります。 /wp-content/plugins/ フォルダ内にあります。シンプルな単一ファイルのプラグインの場合は、メインのPHPファイルをそのディレクトリに直接置くことができます。より複雑なプラグインの場合は、プラグインの名前を付けた独立したサブディレクトリを作成することを強くお勧めします(例: /wp-content/plugins/my-awesome-plugin/その後、すべてのプラグインファイル(PHP、CSS、JS、画像など)をこのサブディレクトリにまとめます。これにより、ファイルの管理が明確で整理された状態になります。
プラグインに翻訳サポートを追加するにはどうすればよいですか?
プラグインに国際化(i18n)サポートを追加するには、主に以下のステップが必要です。まず、プラグインのヘッダー部分にあるコメント内で正しく設定を行う必要があります。 Text Domainそして、コード内でWordPressの翻訳機能を使用してください。例えば: ()、_e()、esc_html() すべて翻訳が必要な文字列を「」などのタグで囲みます。その後、Poeditのようなツールを使用してこれらの文字列を抽出し、翻訳用のファイルを生成します。 .pot テンプレートファイルを使用し、それに基づいて対応する言語のコンテンツを作成します。 .po と .mo 最後に、プラグインの初期化時にこれを使用してください。 load_plugin_textdomain() 翻訳を読み込むための関数です。
次はどうする?
拡大読書と実践的知識
以下は、この記事のトピックに関連しており、さらに深く読むのに適している。あなたの現在の問題に最も近い記事から優先順位をつけ、徐々に周辺のトピックに広げていく方が良い場合が多い。