WordPressプラグインボイラープレートパート2:WordPressプラグインの開発
この記事では、プラグインの公開機能を実装します。これは、ユーザーの設定を取得し、その特定の投稿が時代遅れかどうかを判断し、それに応じて単一の投稿ビューに通知を表示することを意味します。始めましょう!
さまざまな選択肢が提示され、WordPressエクスポートファイルをインポートするため、WordPressを選択します。 WordPressのインストールに応じて、WordPressインポータープラグインがインストールされていない場合、プラグインポップアップが表示されます。あなたがそれを持っていない場合は、最初にプラグインをインストールして、それが完了したら実際のインポートプロセスを続行します。
これはデフォルトのWordPressインポートページであるため、以前にダウンロードしたTheme-Unit-Test-data.xmlを選択し、[ファイルのアップロードとインポート]ボタンをクリックする必要があります。
2番目の画面が表示されます。 「著者の割り当て」セクションについては、デフォルトのままにすることができるため、あまり心配しないでください。 「添付ファイルのインポート」セクションで、すべての外部添付ファイルがダウンロードされ、メディアライブラリにインポートされるように、「ファイル添付ファイルのダウンロードとインポート」というチェックボックスにチェックしてください。
今、私たちは通知を表示するコードを書く準備ができました。
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>
考慮する必要があるもう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>
私たちの日数のしきい値に対する比較として使用されるため、日数にのみ関心があります。前にも言ったように、私たちはそれらを比較して、特定のクラスを通知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
<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>
Public/CSSフォルダー内に含まれる時代遅れのnotice-public.cssファイルを開き、このルールを追加します。
それです! WordPressプラグインボイラープレートに基づいて、完全に機能的なプラグインが開発されました。
改善異なるコンテキストの動的テキスト。時代遅れの通知に異なるテキストを使用できます。
WordPressプラグインボイラープレートとは何ですか?それが重要なのはなぜですか?
WordPressプラグインボイラープレートは、高品質のWordPressプラグインを構築するための標準化され、組織化され、オブジェクト指向の基礎です。特にWordPressプラグインの開発を初めての開発者に、理解しやすく、取り組むことができる明確で一貫した構造を提供します。堅実な出発点を提供し、一般的なコードをゼロから書く必要性を減らすことにより、時間と労力を節約することが重要です。また、プラグインのコーディング、パフォーマンス、セキュリティ、保守性の向上におけるベストプラクティスを促進します。最初にGitHubリポジトリからダウンロードする必要があります。ダウンロードしたら、ボイラープレートのディレクトリとファイルの名前を変更して、プラグインの詳細に一致させることができます。ボイラープレートのコードは十分に構成されており、カスタムコードをどこに配置するかを導きます。メインプラグインファイルのプラグインヘッダーを更新して、プラグインの詳細を反映することを忘れないでください。
WordPressプラグインボイラープレートはコミュニティ主導のプロジェクトであり、貢献はいつでも歓迎します。バグを報告したり、改善を提案したり、GitHubリポジトリにプルリクエストを送信したりすることで貢献できます。貢献する前に、プロジェクトの貢献ガイドラインを必ず読んで理解してください。
WordPressプラグインボイラープレートは、コードを整理するように設計された特定の構造に従います。および管理可能。 「管理者」、「含まれる」、「パブリック」の3つのメインディレクトリで構成されています。 「管理者」ディレクトリには、プラグインの管理者固有のサイドのCSS、JavaScript、およびPHPファイルが含まれています。 「含まれる」ディレクトリは、コアプラグインクラスとその他の共有関数を定義するために使用されます。 「public」ディレクトリには、プラグインのパブリック面のファイルが含まれています。
WordPressプラグインボイラープレートでプラグインを国際化するにはどうすればよいですか?ディレクトリ。このクラスは、プラグインのテキストドメインをロードし、他の言語に翻訳できるようにします。ボイラープレート内のプレースホルダーテキストドメインをプラグインのテキストドメインに置き換えるだけです。 「管理者」および「パブリック」ディレクトリのスクリプトとスタイルを排除するため。これらのクラスには、スクリプトとスタイルを登録およびenqueする機能が含まれ、適切な場所で適切なタイミングでロードされるようにします。
WordPressプラグインボイラープレートには、WordPressダッシュボードからプラグインがアンインストールされたときに実行されるUninstall.phpファイルが含まれています。このファイルには、プラグインオプションやデータベーステーブルの削除など、クリーンアップコードが含まれている必要があります。これにより、プラグインがアンインストールされたときにトレースが残さないようにします。
以上がWordPressプラグインボイラープレートパート3:最後の手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。