ワードプレスプラグインボイラープレートの紹介である私のシリーズの最初の部分では、ボイラープレート内でコードがどのように整理されているかを調べました。このシリーズを続けるために、実際の作業プラグインを構築するために以前に学んだことを適用します。できるだけ少ない作業で、ボイラープレートコードを使用してプラグインを稼働させることができる速さを見てみましょう。
この記事では、プラグインの作成とアクティブ化、およびプラグインの管理に直面する機能性の開発に焦点を当てます。このチュートリアルに従うには、PHPとWordPressの基本的な理解と、WordPressプラグインAPIの実用的な知識が必要です。キーテイクアウト
[ビルド]ボタンをクリックすると、WordPressプラグインボイラープレートの素敵でカスタマイズされたコピーを取得する必要があります。 プラグインのインストールとアクティブ化
他のプラグインとの命名競合を回避するために適切に名前を変更する必要があるため、トランクディレクトリを時代遅れに変更します。
WP-Adminの「インストールされたプラグイン」セクションに移動すると、確かに、プラグインがインストールされているがまだアクティブ化されていないプラグインのリストに表示されます。プラグインボイラープレートジェネレーターは、プラグインの説明に関して何も変更しないため、変更したい場合は、メインプラグインファイル(私たちの場合はanuptated-notice.php。)で説明を編集できます。
「アクティブ化」をクリックして、光沢のある新しいプラグインをアクティブにします。 WordPressサイトでは何も変更されないので、プラグインをアクティブにした後もまだ見えるものがないことを心配しないでください。
オプションページの追加プラグイン開発者は通常、ユーザーがプラグインの設定をカスタマイズする手段を提供します。これは、WordPressが提供する設定APIを利用することで実現できます。自分の設定をプラグインに統合するにはどうすればよいですか。 要するに、ポストコンテンツの前またはポストコンテンツの後に、ユーザーが通知が表示される場所を選択できるようにします。しきい値のしきい値に関する限り、ユーザーは投稿が時代遅れと見なされる前に日数を設定できます。その情報を使用して、通知のクラスを動的に変更して、まだ新鮮と見なされている投稿とは違うスタイルができるようにします。
プラグインのオプションページを追加して、開始しましょう。注意すべきことの1つは、クラスを使用してフックを定義するため、どの関数が呼び出されるかを直接指定する代わりに、配列(
<span>/** </span><span> * Add an options page under the Settings submenu </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function add_options_page() { </span> <span>$this->plugin_screen_hook_suffix = add_options_page( </span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ), </span> <span>__( 'Outdated Notice', 'outdated-notice' ), </span> <span>'manage_options', </span> <span>$this->plugin_name, </span> <span>array( $this, 'display_options_page' ) </span> <span>); </span> <span>}</span>
それはそれをするはずです。今すぐやらなければならない最後のことは、ボイラープレートの提供されたローダークラスを使用して正しくロードすることです。 class-outdated-notice.phpをインクルードフォルダーに開き、define_admin_hooksメソッド内で以前に定義した追加のフックを追加します。オプションページに含める適切なアクションフックはadmin_menuなので、追加しましょう。
<span>/** </span><span> * Render the options page for plugin </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function display_options_page() { </span> <span>include_once 'partials/outdated-notice-admin-display.php'; </span> <span>}</span>
今のところ空白のページなので、適切なマークアップで部分ファイルの穴を開けるようにしましょう。
設定値の登録、保存、および取得WordPress Codexの設定APIページは、オプションページに表示するなど、独自の設定を登録する方法についての良い説明を提供します。
ボイラープレートローダーでフックを登録します
設定セクション
を登録しますこれからは、この値をオプションに関連するものにプレップするつもりです。
次のことは、実際に設定セクション、設定フィールド、個々の設定を登録することです。 outdated_notice_adminクラスをもう一度開き、public method register_settingを追加します。
設定セクション<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
public register_settingメソッド内で、設定セクションを登録します。 Codexはすでに開始するのに十分な情報を提供しているため、さまざまな機能やAPIをあまり掘り下げてこれを行うことはありません。プラグインの設定は比較的簡単であるため、1つのセクションのみを登録します。
このスニペットを使用すると、add_settings_section関数を使用して、オプションページの「一般」セクションを登録できます。<span>/** </span><span> * Add an options page under the Settings submenu </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function add_options_page() { </span> <span>$this->plugin_screen_hook_suffix = add_options_page( </span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ), </span> <span>__( 'Outdated Notice', 'outdated-notice' ), </span> <span>'manage_options', </span> <span>$this->plugin_name, </span> <span>array( $this, 'display_options_page' ) </span> <span>); </span> <span>}</span>
他のプラグインとの競合を防ぐために、変数$ option_nameを使用してセクション名を事前に保留していることに注意してください。コールバックを使用して、私たちのセクションに関する追加情報を提供できます。これはまさに私たちが望むものです。
このセクションに関する基本情報をエコーする別のパブリックメソッド、outdated_notice_general_cbを追加します。2つの設定フィールド(しきい値日とテキストの位置)
<span>/** </span><span> * Render the options page for plugin </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function display_options_page() { </span> <span>include_once 'partials/outdated-notice-admin-display.php'; </span> <span>}</span>
add_settings_fieldの5番目の引数が、以前に登録した正しい設定セクションを指していることを確認する必要があります。
これはまだ行われていません。ラジオボタンの実際のマークアップをレンダリングするコールバック関数を提供する必要があります。 outdated_notice_position_cb関数では、このコードブロックを含める必要があります。
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
繰り返しますが、テキストフィールドをレンダリングするコールバック関数も提供する必要があります。
<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
最後に、WordPress内で認識できるように、使用するオプション名を登録する必要があります。 2つの異なるオプション名を使用しているため、antstated_notice_positionとoutstated_notice_dayを使用しているため、Register_setting関数を使用してそれらを登録します。
<span>/** </span><span> * The options name to be used in this plugin </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> * <span>@access private </span></span><span> * <span>@var <span>string</span> $option_name Option name of this plugin </span></span><span> */ </span> <span>private $option_name = 'outdated_notice';</span>
register_setting関数の3番目のパラメーターは消毒コールバックであることに注意してください。オプションですが、データベースに保存する前に入力値が消毒されることを確認することは常に有用です。
day Sanitizationの場合、私たちの場合は十分であるため、内蔵PHP関数、Intvalを使用します。テキスト通知の位置については、独自のサニタイズコールバック関数を定義します。これにより、特定の値のみがデータベースに保存されます。これは、特定の値に限定されたオプションを扱う場合に特に便利です。この場合、2つの値のみを受け入れるだけで、それが前後であるため、サニタイズコールバックは、値がその1つでない場合を確認する必要があります。これらは、データベースに保存されません<span>// Add a General section </span> <span>add_settings_section( </span> <span>$this->option_name . '_general', </span> <span>__( 'General', 'outdated-notice' ), </span> <span>array( $this, $this->option_name . '_general_cb' ), </span> <span>$this->plugin_name </span> <span>);</span>
<span>/** </span><span> * Add an options page under the Settings submenu </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function add_options_page() { </span> <span>$this->plugin_screen_hook_suffix = add_options_page( </span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ), </span> <span>__( 'Outdated Notice', 'outdated-notice' ), </span> <span>'manage_options', </span> <span>$this->plugin_name, </span> <span>array( $this, 'display_options_page' ) </span> <span>); </span> <span>}</span>
関連するすべての設定の登録が完了したら、オプションページが正しくレンダリングされることを確認する必要があります。 WordPressの方法を使用してフィールドと設定を登録しているため、このタスクは特に簡単です。
admin/partialsフォルダー内で時代遅れのadmin-display.phpを開きます。 以前に登録した設定に基づいてオプションページをレンダリングする方法は次のとおりです。do_settings_sectionsとsettings_fields関数の単純な組み合わせにより、オプションページはまったく完了します。
<span>/** </span><span> * Render the options page for plugin </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function display_options_page() { </span> <span>include_once 'partials/outdated-notice-admin-display.php'; </span> <span>}</span>
フィールドを保存して再貯蔵します
以下の例に従って、データベースからいくつかの値を取り戻す必要があります:
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
それは私たちのフォームが正常に機能していることを意味します。したがって、行う必要がある唯一のことは、テキストフィールドに現在の値を表示し、正しいラジオボタンがチェックされていることを確認することです。
最初にラジオボタンに取り組みましょう。ショートカットとして、WordPressが提供するチェック機能を使用して、以前に選択された値をマークするだけです。 outstated_notice_position_cbには、いくつかの変更が必要です。<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
コールバック用の更新されたスニペットです。
さて、いずれかのフィールドの値を変更するたびに、オプションページに正しく反映されます。
さらなる改善
<span>/** </span><span> * The options name to be used in this plugin </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> * <span>@access private </span></span><span> * <span>@var <span>string</span> $option_name Option name of this plugin </span></span><span> */ </span> <span>private $option_name = 'outdated_notice';</span>
コードクリーンアップ - WordPressプラグインボイラープレートには多くの有用な機能が備わっていますが、私たちの場合、管理側ではCSSとJSの負荷がまったく不要です。コードベースからいつでもそれを削除して、それを小さくすることができます。
完全なコードは、パート2ブランチのこのGitHubリポジトリから表示できます。
関連する設定を登録し、ユーザーがプラグインをカスタマイズするオプションページを作成することにより、基本的な管理者に向かう機能を備えたプラグインを作成しました。 WordPressプラグインボイラープレートを使用して比較的短い時間で、コードの品質を損なうことなくこれを達成しましたが、WordPressが推奨するようにベストプラクティスに準拠しています。
ポストコンテンツ内に適切な通知を表示するためにプラグインの一般の側面を行うシリーズの次の部分にご期待ください。ボイラープレートを使用したWordPressプラグインの開発に関するよくある質問WordPressプラグインボイラープレートは何ですか?なぜそれを使用する必要がありますか?
WordPressプラグインボイラープレートのプラグイン設定を処理するにはどうすればよいですか?このクラスには、設定の登録、設定フィールドの表示、および設定値の消毒方法が含まれます。このクラスを、独自の設定機能を実装するための出発点として使用できます。
管理者固有の機能をプラグインに追加するには、WordPressプラグインボイラープレートの管理ディレクトリで提供されるクラスとメソッドを使用できます。このディレクトリには、管理ページの作成、設定フィールドの追加、フォームの送信の処理のためのクラスが含まれています。
プラグインでAJAXリクエストを処理するにはどうすればよいですか? AJAXリクエストを処理するため。これらのクラスには、AJAXアクションの登録、AJAXリクエストの処理、AJAX応答の送信方法が含まれます。プラグインボイラープレートはいくつかの方法で実行できます。一般的な方法の1つは、WP-Config.phpファイルでwp_debug定数を使用することです。これにより、PHPエラー、通知、および警告が表示されます。また、WordPressで利用できるさまざまなデバッグプラグインを使用したり、PHPの組み込みエラーロギング機能を使用したりすることもできます。
以上がWordPressプラグインボイラープレートパート2:プラグインの開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。