WordPressプラグインボイラープレートパート2:プラグインの開発
ワードプレスプラグインボイラープレートの紹介である私のシリーズの最初の部分では、ボイラープレート内でコードがどのように整理されているかを調べました。このシリーズを続けるために、実際の作業プラグインを構築するために以前に学んだことを適用します。できるだけ少ない作業で、ボイラープレートコードを使用してプラグインを稼働させることができる速さを見てみましょう。
この記事では、プラグインの作成とアクティブ化、およびプラグインの管理に直面する機能性の開発に焦点を当てます。このチュートリアルに従うには、PHPとWordPressの基本的な理解と、WordPressプラグインAPIの実用的な知識が必要です。キーテイクアウト
WordPressプラグインボイラープレートを利用して、構造化された整理されたアプローチで開発プロセスを促進し、ベストプラクティスに従うことを保証します。
- 設定APIを使用してオプションページを追加してプラグインをカスタマイズして、ユーザーが通知の表示位置や、投稿が時代遅れと見なされる日数などの設定を変更できるようにします。
- 設定を登録し、設定フィールドを追加し、ボイラープレート内の提供されたクラスとメソッドを使用してこれらの設定値の保存と取得を処理することにより、プラグインの機能を実装します。 オプションページのクリーンでユーザーフレンドリーなインターフェイスを作成して、プラグインの管理機能を最適化し、設定が正しく保存されて表示されていることを確認してください。 コードのクリーンアップ、国際化、およびより選択的なアプリケーションロジックなど、プラグインの効率とユーザーエクスペリエンスを改良するなど、さらに強化するための計画。 プラグインについて
- 特定の投稿が最後に更新されてから日数を表示するシンプルなプラグインを開発します。また、プラグインにいくつかの簡単なカスタマイズを提供し、ユーザーが投稿が時代遅れと見なされる特定の日数を選択できるようにし、ポストコンテンツの通知の位置を選択できます。 > ボイラープレートの準備
- 最初の記事で述べたように、ボイラープレートの新しいコピーをダウンロードして検索を行い、自分自身を交換するか、非公式のWordPressプラグインボイラープレートジェネレーターを使用してプロセスを高速化することができます。プラグインにジェネレーターを使用しましょう。
- WordPressプラグインボイラープレートジェネレーターのWebサイトにアクセスし、適切な値をフォームに記入します。プラグインを「時代遅れの通知」と呼びましょう。これは、フィールドが入ったサンプルフォームです。
公式リポジトリにリンクするプラグインURLに想像上のURLを使用しています。このようなことについてあまり心配しないでください。プラグインヘッダーでいつでも変更できるので、
[ビルド]ボタンをクリックすると、WordPressプラグインボイラープレートの素敵でカスタマイズされたコピーを取得する必要があります。 プラグインのインストールとアクティブ化
生成されたZIPアーカイブには、2つの予想されるディレクトリ、資産とトランクが含まれます。プラグインをインストールする際にSymlinkルートを使用することはないので、アーカイブのトランクフォルダーを抽出して、WP-Content/Pluginsディレクトリにコピーします。
他のプラグインとの命名競合を回避するために適切に名前を変更する必要があるため、トランクディレクトリを時代遅れに変更します。
WP-Adminの「インストールされたプラグイン」セクションに移動すると、確かに、プラグインがインストールされているがまだアクティブ化されていないプラグインのリストに表示されます。プラグインボイラープレートジェネレーターは、プラグインの説明に関して何も変更しないため、変更したい場合は、メインプラグインファイル(私たちの場合はanuptated-notice.php。)で説明を編集できます。
「アクティブ化」をクリックして、光沢のある新しいプラグインをアクティブにします。 WordPressサイトでは何も変更されないので、プラグインをアクティブにした後もまだ見えるものがないことを心配しないでください。
オプションページの追加
プラグイン開発者は通常、ユーザーがプラグインの設定をカスタマイズする手段を提供します。これは、WordPressが提供する設定APIを利用することで実現できます。自分の設定をプラグインに統合するにはどうすればよいですか。 要するに、ポストコンテンツの前またはポストコンテンツの後に、ユーザーが通知が表示される場所を選択できるようにします。しきい値のしきい値に関する限り、ユーザーは投稿が時代遅れと見なされる前に日数を設定できます。その情報を使用して、通知のクラスを動的に変更して、まだ新鮮と見なされている投稿とは違うスタイルができるようにします。
プラグインのオプションページを追加して、開始しましょう。管理者フォルダー内にclass-outated-notice-admin.phpを開きます。このクラスを変更して、プラグインの設定ページを登録できるようにする必要があります。この公開方法をクラスの終わりに向けて追加します。
注意すべきことの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ページは、オプションページに表示するなど、独自の設定を登録する方法についての良い説明を提供します。
このセクションで私たちがやろうとしていることの内訳は次のとおりです。
ボイラープレートローダーでフックを登録します
設定セクション
を登録します- 2つの設定フィールド(しきい値日とテキストの位置)
- を登録します 2つの設定を登録します
- オプションページに挿入します ディスプレイのためにフィールドを保存および再編成します。
- フックをボイラープレートローダーに登録します
- すべての手順を1つずつ進めましょう。
- 設定セクションを登録するには、Register_Setting関数を使用する必要があります。その関数を初期化するための適切なフックはadmin_initです。したがって、最初に別のフックをボイラープレートローダーに追加して、メインボイラープレートクラスのdefine_admin_hooksメソッド内に設定を登録します。
これからは、この値をオプションに関連するものにプレップするつもりです。
次のことは、実際に設定セクション、設定フィールド、個々の設定を登録することです。 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>
使用する必要がある設定APIの次の部分は、オプションページでレンダリングされる実際のフィールドを登録することです。これは、add_settings_field関数を使用して実現できます
テキスト位置構成には無線ボタンを使用します。これは、このコードを持っているregister_setting関数に追加することによって行われます。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の負荷がまったく不要です。コードベースからいつでもそれを削除して、それを小さくすることができます。
i18n(Internationalization)Ready - プラグインでは__()と_e()を広範囲に使用していますが、実際のi18nプロセスは実際には実行されません。このトピックは、この記事では、このトピックがSitePointでかなり広範囲に議論されているため、ここではプロセスをカバーしません。
より細かい選択 - 実装がすべての投稿に適用されるため、特定のカテゴリ内の投稿または特定のタグがある投稿に適用するようにさらに最適化できます。完全なコードは、パート2ブランチのこのGitHubリポジトリから表示できます。
結論
関連する設定を登録し、ユーザーがプラグインをカスタマイズするオプションページを作成することにより、基本的な管理者に向かう機能を備えたプラグインを作成しました。 WordPressプラグインボイラープレートを使用して比較的短い時間で、コードの品質を損なうことなくこれを達成しましたが、WordPressが推奨するようにベストプラクティスに準拠しています。
ポストコンテンツ内に適切な通知を表示するためにプラグインの一般の側面を行うシリーズの次の部分にご期待ください。ボイラープレートを使用したWordPressプラグインの開発に関するよくある質問WordPressプラグインボイラープレートは何ですか?なぜそれを使用する必要がありますか?
WordPressプラグインボイラープレートは、高品質のWordPressプラグインを構築するための標準化され、整理された、オブジェクト指向のフレームワークです。理解しやすく、作業しやすい明確で一貫した構造を提供します。このボイラープレートを使用すると、プラグインの基本構造をセットアップする際に多くの時間と労力を節約できます。また、プラグインがWordPressのコーディング標準とベストプラクティスに従うことを保証します。これにより、バグや互換性の問題を防ぐのに役立ちます。 WordPressプラグインボイラープレートを使用すると、最初にGitHubリポジトリからダウンロードする必要があります。ダウンロード後、ボイラープレートのディレクトリとファイルの名前を変更して、プラグインの名前と一致させることができます。次に、ボイラープレートの既存の構造に独自のカスタム機能を追加することにより、プラグインの開発を開始できます。主なコンポーネント。これらには、プラグインヘッダーとローダークラスが含まれるプラグインファイルが含まれます。コアプラグインクラスおよびその他の機能関連ファイルを含むディレクトリを含む。プラグインの管理者固有の機能に関連するファイルを含む管理ディレクトリ。プラグインのパブリック機能に関連するファイルを含むパブリックディレクトリ。 WordPressプラグインボイラープレートでは、ディレクトリを含む新しいクラスを作成できます。これらのクラスは、ボイラープレートが提供するベースクラスを拡張する必要があります。その後、これらのクラスに独自のメソッドを追加して、目的の機能を実装できます。必要に応じて既存のクラスとメソッドを変更することもできます。
WordPressプラグインボイラープレートのプラグイン設定を処理するにはどうすればよいですか?このクラスには、設定の登録、設定フィールドの表示、および設定値の消毒方法が含まれます。このクラスを、独自の設定機能を実装するための出発点として使用できます。
プラグインに管理者固有の機能を追加するにはどうすればよいですか?
管理者固有の機能をプラグインに追加するには、WordPressプラグインボイラープレートの管理ディレクトリで提供されるクラスとメソッドを使用できます。このディレクトリには、管理ページの作成、設定フィールドの追加、フォームの送信の処理のためのクラスが含まれています。
プラグインにパブリック面の機能を追加するにはどうすればよいですか?プラグインでは、WordPressプラグインボイラープレートのパブリックディレクトリで提供されるクラスとメソッドを使用できます。このディレクトリには、スクリプトとスタイルをエンキューするクラス、および公開コンテンツを表示するためのクラスが含まれています。国際化。このクラスには、プラグインのテキストドメインをロードする方法が含まれています。これにより、プラグインを異なる言語に翻訳できるようになります。
プラグインでAJAXリクエストを処理するにはどうすればよいですか? AJAXリクエストを処理するため。これらのクラスには、AJAXアクションの登録、AJAXリクエストの処理、AJAX応答の送信方法が含まれます。プラグインボイラープレートはいくつかの方法で実行できます。一般的な方法の1つは、WP-Config.phpファイルでwp_debug定数を使用することです。これにより、PHPエラー、通知、および警告が表示されます。また、WordPressで利用できるさまざまなデバッグプラグインを使用したり、PHPの組み込みエラーロギング機能を使用したりすることもできます。
以上がWordPressプラグインボイラープレートパート2:プラグインの開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ブログは、人々が自分の意見、意見、意見をオンラインで表現するための理想的なプラットフォームです。多くの初心者は自分のウェブサイトを構築することに熱心ですが、技術的な障壁やコストの問題を心配することをためらっています。ただし、プラットフォームが初心者の能力とニーズを満たすために進化し続けるにつれて、今まで以上に容易になり始めています。 この記事では、テーマの選択からプラグインの使用まで、セキュリティとパフォーマンスを向上させ、独自のWebサイトを簡単に作成できるように、WordPressブログを構築する方法を段階的に導きます。 ブログのトピックと方向を選択してください ドメイン名を購入したり、ホストを登録する前に、カバーする予定のトピックを特定することをお勧めします。個人的なウェブサイトは、旅行、料理、製品のレビュー、音楽、またはあなたの興味を引き起こす趣味を中心に展開できます。あなたが本当に興味を持っている領域に焦点を当てることは継続的な執筆を奨励することができます

WordPressの記事リストを調整するには4つの方法があります。テーマオプションを使用し、プラグイン(投稿タイプの注文、WP投稿リスト、ボックスのものなど)を使用し、コード(functions.phpファイルに設定を追加)を使用するか、WordPressデータベースを直接変更します。

親カテゴリアーカイブページに子カテゴリを表示する方法を知りたいですか?分類アーカイブページをカスタマイズするときは、訪問者にとってより便利にするためにこれを行う必要がある場合があります。この記事では、親カテゴリアーカイブページに子カテゴリを簡単に表示する方法を示します。サブカテゴリが親カテゴリアーカイブページに表示されるのはなぜですか?親カテゴリアーカイブページにすべての子カテゴリを表示することにより、訪問者にとってより一般的で便利になります。たとえば、本に関するWordPressのブログを実行し、「テーマ」と呼ばれる分類法を持っている場合、「小説」、「ノンフィクション」などのサブ課題を追加して、読者ができるようにすることができます。

最近、ユーザーがお気に入りの投稿をパーソナライズされたライブラリに保存できるようにすることで、ユーザー向けのパーソナライズされたエクスペリエンスを作成する方法を示しました。一部の場所で名前を使用することで、パーソナライズされた結果を別のレベルに引き上げることができます(つまり、ウェルカム画面)。幸いなことに、WordPressにより、ユーザーのログインに関する情報を簡単に入手できます。この記事では、現在ログインしているユーザーに関連する情報を取得する方法を紹介します。 get_currentuserinfo()を使用します。 関数。これは、テーマ(ヘッダー、フッター、サイドバー、ページテンプレートなど)のどこでも使用できます。それが機能するためには、ユーザーをログインする必要があります。したがって、使用する必要があります

WordPressは、初心者が簡単に始めることができます。 1.バックグラウンドにログインした後、ユーザーインターフェイスは直感的であり、シンプルなダッシュボードは必要なすべての関数リンクを提供します。 2。基本操作には、コンテンツの作成と編集が含まれます。 WysiWygエディターは、コンテンツの作成を簡素化します。 3.初心者は、プラグインとテーマを介してウェブサイトの機能を拡張でき、学習曲線は存在しますが、練習を通じて習得できます。

過去には、拡張後のプラグインを使用してWordPressの投稿を期限切れにする方法を共有してきました。さて、Activity List Webサイトを作成するとき、このプラグインは非常に便利であることがわかりました。期限切れのアクティビティリストを簡単に削除できます。第二に、このプラグインのおかげで、有効期限後の日付までに投稿を並べ替えることも非常に簡単です。この記事では、WordPressの有効期限後の日付で投稿を並べ替える方法を紹介します。プラグインの変更を反映してカスタムフィールド名を変更するためのコードを更新しました。コメントで私たちに知らせてくれたTajimに感謝します。特定のプロジェクトでは、イベントをカスタムポストタイプとして使用します。今

ユーザーの1人が、フッターにクエリの数とページの読み込み時間を表示する方法を他のWebサイトに尋ねました。これをウェブサイトのフッターでよく見ることがよくあり、「1.248秒で64クエリ」のようなものを表示する場合があります。この記事では、WordPressにクエリの数とページの読み込み時間を表示する方法を紹介します。テーマファイル(たとえば、footer.php)で好きな場所に次のコードを貼り付けます。クエリエシン

WordPress Webサイトやソーシャルメディアアカウントを自動化する方法をお探しですか? 自動化を使用すると、WordPressのブログ投稿やFacebook、Twitter、LinkedIn、Instagramなどで自動的に共有できます。 この記事では、IFTTT、Zapier、およびUncanny Automatorを使用してWordPressとソーシャルメディアを簡単に自動化する方法を紹介します。 WordPressとソーシャルメディアを自動化する理由 WordPreを自動化します
