ホームページ > CMS チュートリアル > &#&プレス > WordPressプラグインボイラープレートパート3:最後の手順

WordPressプラグインボイラープレートパート3:最後の手順

Christopher Nolan
リリース: 2025-02-16 11:53:09
オリジナル
290 人が閲覧しました

WordPressプラグインボイラープレートパート3:最後の手順

キーテイクアウト

  • WordPressプラグインボイラープレートシリーズの第3部は、プラグインのパブリック機能の実装に焦点を当てています。
  • ガイドでは、テストのためのテーマを準備する方法、_contentフィルターにフックする方法、コンテンツを条件付きで変更する方法、および現在の時間と最後の修正時間の日の違いを計算する方法を説明します。
  • 通知テキストのスタイリングについても説明し、著者は全体的なテーマデザインに合わせてシンプルなスタイリングガイドを提供します。著者はまた、さまざまなコンテキストの動的テキストや却下可能な通知など、潜在的な改善を提案しています。
  • 著者は、WordPressプラグインボイラープレートの利点を強調することで締めくくり、その明確な構造、ベストプラクティスの順守、およびプラグイン開発のための確固たる出発点を持つことの時間節約の側面に注目しています。
  • このシリーズの第2部では、プラグインの単純な管理機能を準備しました。ユーザーに、好みに応じてプラグインを調整できるオプションページを提供しました。
  • パート1と2を逃した場合は、以下を見つけてください:
WordPressプラグインボイラープレートパート1:WordPressプラグインボイラープレートを使用した開発をスピードアップ

WordPressプラグインボイラープレートパート2:WordPressプラグインの開発

この記事では、プラグインの公開機能を実装します。これは、ユーザーの設定を取得し、その特定の投稿が時代遅れかどうかを判断し、それに応じて単一の投稿ビューに通知を表示することを意味します。始めましょう!
  • テーマの準備
  • テーマを後でテストできるように、テーマを準備する必要があります。 WordPressでデフォルトで出荷される215のテーマを使用します。投稿を手動で埋め込むのではなく、テーマレビューチームが提供するテーマ単位テストデータを使用して、投稿を設定する予定です。
  • 上記のCodexページに記載されているTheme-Unit-Test-Data.xmlをダウンロードして、WordPressのインストールにインポートする必要があります。 WordPressの組み込みインポート機能は、ツールにナビゲートして> SideBarからのインポートで見つけることができます。

さまざまな選択肢が提示され、WordPressエクスポートファイルをインポートするため、WordPressを選択します。 WordPressのインストールに応じて、WordPressインポータープラグインがインストールされていない場合、プラグインポップアップが表示されます。あなたがそれを持っていない場合は、最初にプラグインをインストールして、それが完了したら実際のインポートプロセスを続行します。WordPressプラグインボイラープレートパート3:最後の手順 これはデフォルトのWordPressインポートページであるため、以前にダウンロードしたTheme-Unit-Test-data.xmlを選択し、[ファイルのアップロードとインポート]ボタンをクリックする必要があります。

2番目の画面が表示されます。 「著者の割り当て」セクションについては、デフォルトのままにすることができるため、あまり心配しないでください。 「添付ファイルのインポート」セクションで、すべての外部添付ファイルがダウンロードされ、メディアライブラリにインポートされるように、「ファイル添付ファイルのダウンロードとインポート」というチェックボックスにチェックしてください。 WordPressプラグインボイラープレートパート3:最後の手順「送信」ボタンを押して、インポートプロセスが正常に完了するまで待ちます。

今、私たちは通知を表示するコードを書く準備ができました。

the_contentフィルターに接続

The_Contentフィルターを使用することは、ユーザーに表示される投稿のコンテンツを変更するのに最適な方法です。以前のチュートリアルによると、define_admin_hooksの代わりにdefine_public_hooksメソッドが使用されるという唯一の違いは、ボイラープレートクラスローダーにフックを追加します。 このコードをメソッドに追加します:

これは、outstated_notice_publicクラスに公開the_contentメソッドを実装する必要があることを意味します。 public/class-outdated-notice-public.phpを開き、それに応じて変更します

コンテンツを条件付きで変更します

the_contentフィルターはさまざまなプラグインと内部のWordPressコアで使用されているため、カスタムコンテンツを挿入することに注意する必要があります。
<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
ログイン後にコピー
ログイン後にコピー
ブログ投稿インデックスではなく、単一の投稿が表示されるたびに、時代遅れの通知テキストを挿入することを確認する必要があります。そのためには、IS_MAIN_QUERY関数を使用してフィルタリングできます。この関数は、実行中のクエリがメインのクエリであるか、セカンダリ/カスタムクエリであるかを判断する必要がある場合はいつでも便利です。

考慮する必要があるもう1つのことは、ポストタイプの投稿の単一ビューの通知テキストのみを表示することです。そのため、is_singular( 'post')検証は仕事に最適です。

これは、undated_notice_public classに含まれる更新されたthe_contentメソッドです。

日の差の計算

開始する前に、通知が投稿の「前」として表示されるように位置を設定しましょう。

最初に、プラグインの保存された設定を取得する必要があります。 get_option関数はジョブを行い、安全な尺度として、get_optionの2番目の引数としてデフォルト値を渡すつもりです。

<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
ログイン後にコピー
ログイン後にコピー

現在の時刻と最後の変更時刻の日の差を計算するには、2つのDateTimeオブジェクトをインスタンス化します。 DateTimeクラスに組み込まれているDIFFメソッドを使用して、時差を正確に測定できます。 DateTimeクラスはPHP> = 5.3.0でのみ利用可能です。

<span>public function the_content( $post_content ) {
</span>
		<span>if ( is_main_query() && is_singular('post') ) {
</span>			<span>// do something
</span>		<span>}
</span>
        <span>return $post_content;
</span>	<span>}</span>
ログイン後にコピー
$ date_diffはdateintervalクラスのインスタンスであるため、時間の違いに関して利用可能なさまざまなデータがあります。 $ date_diff変数をvar_dumpする場合、これはあなたが現在閲覧している投稿に応じて、私たちが取得する必要があるものです。

私たちの日数のしきい値に対する比較として使用されるため、日数にのみ関心があります。前にも言ったように、私たちはそれらを比較して、特定のクラスを通知div要素に適用して、投稿間で異なってスタイリングできるようにします。
<span>$position  = get_option( 'outdated_notice_position', 'before' );
</span>	<span>$days      = (int) get_option( 'outdated_notice_day', 0 );</span>
ログイン後にコピー

この単純な比較ブロックは、Divに使用するクラスを決定するのに十分です。今残っている唯一のことは、ポストコンテンツに追加するHTMLを実際に構築することです。

翻訳対応のテキストを改善するには、_N関数を使用して、投稿が最後に更新されてからの日数に応じて、使用する適切なテキストを選択的に選択します。次に、後でスタイルできるように、通知テキストを独自のDivにラップします。通知テキストを自分の好みに合わせて微調整してください。
<span>$date_now  = new DateTime( current_time('mysql') );
</span>	<span>$date_old  = new DateTime( get_the_modified_time('Y-m-d H:i:s') );
</span>	<span>$date_diff = $date_old->diff( $date_now );</span>
ログイン後にコピー

$通知変数には、ポストコンテンツに挿入するマークアップが含まれている必要があります。残っている唯一のことはそれを追加することです。

要約として、これはundated_notice_public内のthe_contentメソッドが最終的に見えるべきです。
<span>object(DateInterval)#286 (8) {
</span>	  <span>["y"]=>
</span>	  <span>int(0)
</span>	  <span>["m"]=>
</span>	  <span>int(0)
</span>	  <span>["d"]=>
</span>	  <span>int(12)
</span>	  <span>["h"]=>
</span>	  <span>int(23)
</span>	  <span>["i"]=>
</span>	  <span>int(17)
</span>	  <span>["s"]=>
</span>	  <span>int(22)
</span>	  <span>["invert"]=>
</span>	  <span>int(0)
</span>	  <span>["days"]=>
</span>	  <span>int(12)
</span>	<span>}</span>
ログイン後にコピー

数ページでブラウジングを試して、プラグインが意図したとおりに機能しているかどうかを確認してください。これは、url /05/11/hello-world/。
<span>if ( $date_diff->days > $days ) {
</span>		<span>$class = 'is-outdated';
</span>	<span>} else {
</span>		<span>$class = 'is-fresh';
</span>	<span>}</span>
ログイン後にコピー

通知テキストのスタイリング

<span>// Filter the text
</span>	<span>$notice = sprintf(
</span>				<span>_n(
</span>					<span>'This post was last updated %s day ago.',
</span>					<span>'This post was last updated %s days ago.',
</span>					<span>$date_diff->days,
</span>					<span>'outdated-notice'
</span>				<span>),
</span>				<span>$date_diff->days
</span>			<span>);
</span>
	<span>// Add the class
</span>	<span>$notice = '<div >' . $notice . '</div>';
</span>	<span>$notice = sprintf( $notice, $class );</span>
ログイン後にコピー
邪魔にならずに全体的なテーマデザインとよく合うようになる、.outdated-dated-notice Divにいくつかの簡単なスタイリングを適用します。そのためには、すでに使用されているフォントサイズまたはフォントファミリに関しては何も変更しません。さらに、今のところブートストラップの配色とスタイリングを借ります。

Public/CSSフォルダー内に含まれる時代遅れのnotice-public.cssファイルを開き、このルールを追加します。 WordPressプラグインボイラープレートパート3:最後の手順 また、新鮮さを表すために2つの異なるスタイルが必要です。これは、.ISのための1つのスタイルであり、別のスタイルは.isの別のスタイルです。このスニペットはトリックを行う必要があり、新鮮な投稿のための素敵な緑色の配色と、時代遅れの投稿のための赤い配色を与えてください。

投稿ビューを更新して、それがどのようにスタイルされているかを見てみましょう。新鮮で時代遅れの投稿の例:

WordPressプラグインボイラープレートパート3:最後の手順 WordPressプラグインボイラープレートパート3:最後の手順

それです! WordPressプラグインボイラープレートに基づいて、完全に機能的なプラグインが開発されました。

改善

これまでに行ったことに基づいて改善できるさまざまなことがあります。その中には:

異なるコンテキストの動的テキスト。時代遅れの通知に異なるテキストを使用できます。
  • 使用されていないため、時代遅れのnotice-public.jsスクリプトのenqueuingを削除します。 投稿を読むときにユーザーエクスペリエンスを中断しないように
  • 却下可能な通知。
  • 結論
WordPressプラグインボイラープレートは、プラグインをゼロから開発するのに最適な出発点を提供します。シリーズのこの最後の部分では、プラグインのパブリックに直面している機能を開発することで終了しました。修正は非常に単純ですが、少しの時間で行われますが、ボイラープレート自体によって確立されたOOPパターンを維持し、基準とベストプラクティスに準拠しています。

パート3ブランチのGitHubで通常どおりコードの完全なコピーが利用可能です。 WordPressプラグインボイラープレートに関するよくある質問(FAQ)

WordPressプラグインボイラープレートとは何ですか?それが重要なのはなぜですか?

WordPressプラグインボイラープレートは、高品質のWordPressプラグインを構築するための標準化され、組織化され、オブジェクト指向の基礎です。特にWordPressプラグインの開発を初めての開発者に、理解しやすく、取り組むことができる明確で一貫した構造を提供します。堅実な出発点を提供し、一般的なコードをゼロから書く必要性を減らすことにより、時間と労力を節約することが重要です。また、プラグインのコーディング、パフォーマンス、セキュリティ、保守性の向上におけるベストプラクティスを促進します。最初にGitHubリポジトリからダウンロードする必要があります。ダウンロードしたら、ボイラープレートのディレクトリとファイルの名前を変更して、プラグインの詳細に一致させることができます。ボイラープレートのコードは十分に構成されており、カスタムコードをどこに配置するかを導きます。メインプラグインファイルのプラグインヘッダーを更新して、プラグインの詳細を反映することを忘れないでください。

商用プロジェクトにはWordPressプラグインボイラープレートを使用できますか? GPLの下でライセンスされているため、個人および商業プロジェクトの両方に使用できます。ただし、プラグインのドキュメントやクレジットでボイラープレートを認めることをお勧めします。

WordPressプラグインボイラープレートプロジェクトに貢献するにはどうすればよいですか?

WordPressプラグインボイラープレートはコミュニティ主導のプロジェクトであり、貢献はいつでも歓迎します。バグを報告したり、改善を提案したり、GitHubリポジトリにプルリクエストを送信したりすることで貢献できます。貢献する前に、プロジェクトの貢献ガイドラインを必ず読んで理解してください。

WordPressプラグインボイラープレートの構造は何ですか?

WordPressプラグインボイラープレートは、コードを整理するように設計された特定の構造に従います。および管理可能。 「管理者」、「含まれる」、「パブリック」の3つのメインディレクトリで構成されています。 「管理者」ディレクトリには、プラグインの管理者固有のサイドのCSS、JavaScript、およびPHPファイルが含まれています。 「含まれる」ディレクトリは、コアプラグインクラスとその他の共有関数を定義するために使用されます。 「public」ディレクトリには、プラグインのパブリック面のファイルが含まれています。

WordPressプラグインボイラープレートを使用してプラグインに新しい機能を追加するにはどうすればよいですか?プラグインの機能は、通常、「含める」ディレクトリにその機能の新しいクラスを作成します。このクラスは、機能を実行する必要があるすべてのフックを定義する必要があります。次に、メインプラグインクラスにこのクラスをインスタンス化し、「実行」関数に追加します。このモジュラーアプローチにより、プラグイン内の機能を簡単に追加、削除、または変更できます。 「管理者」ディレクトリのプラグインオプションの処理。このクラスには、設定を登録するための関数、セクションとフィールドの定義、設定ページのレンダリングが含まれます。このクラスを拡張してプラグインの特定のオプションを処理することができます。

WordPressプラグインボイラープレートでプラグインを国際化するにはどうすればよいですか?ディレクトリ。このクラスは、プラグインのテキストドメインをロードし、他の言語に翻訳できるようにします。ボイラープレート内のプレースホルダーテキストドメインをプラグインのテキストドメインに置き換えるだけです。 「管理者」および「パブリック」ディレクトリのスクリプトとスタイルを排除するため。これらのクラスには、スクリプトとスタイルを登録およびenqueする機能が含まれ、適切な場所で適切なタイミングでロードされるようにします。

WordPressプラグインボイラープレートでプラグインをきれいにアンインストールするにはどうすればよいですか?

WordPressプラグインボイラープレートには、WordPressダッシュボードからプラグインがアンインストールされたときに実行されるUninstall.phpファイルが含まれています。このファイルには、プラグインオプションやデータベーステーブルの削除など、クリーンアップコードが含まれている必要があります。これにより、プラグインがアンインストールされたときにトレースが残さないようにします。

以上がWordPressプラグインボイラープレートパート3:最後の手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート