(この記事はもともとTorque Magazineによって公開(kāi)され、許可を得て転載しました。) 近年、著者は、トルクマガジンでオブジェクト指向のPHPおよびWordPress REST APIに関する多くの記事を書きました。これには、依存関係管理と自動(dòng)荷重、および単體テストのために作曲家を使用することも含まれます。すべての記事の中心的なポイントは、WordPress開(kāi)発に確立されたソフトウェア開(kāi)発のベストプラクティスを適用することにより、より良いプラグインを作成できます。
これは、これらの概念を?qū)g用的で機(jī)能的な例に統(tǒng)合する一連の記事の最初のものです。 WordPressプラグインを作成する方法を説明して、WordPress REST APIエンドポイントの機(jī)能を変更して、検索をより最適化します。プラグインはGitHubで利用できます。私のビルドプロセスを理解するために、コミットログを閲覧する必要があるかもしれません。
このシリーズでは、最新のオブジェクト指向PHPを使用してプラグインとクラスを構(gòu)築する方法と、テスト可能にする方法と、自動(dòng)テストを作成する方法について説明します。ユニットテスト、統(tǒng)合テスト、受け入れテストの違いをカバーし、各タイプのテストの書き込みと自動(dòng)化の方法を示します。この記事では、最初にオブジェクト指向の方法を使用して、フィルターを使用してWordPress REST APIを変更する方法を紹介します。
キーポイント
オブジェクト指向PHPを使用してWordPress REST APIエンドポイントを強(qiáng)化し、検索機(jī)能を向上させ、ElasticSearchなどの高度な検索ツールと統(tǒng)合します。
- REST APIエンドポイントパラメーターとWP_QUERYインタラクションを変更して、デフォルトのWordPress検索の制限をバイパスし、複雑なクエリの応答品質(zhì)を向上させます。
- 単體テスト、統(tǒng)合テスト、および受容テストを使用して、各コンポーネントがWordPressエコシステムで正しく実行されることを確認(rèn)します。
- 依存関係の注入とPHP特性を使用して、クラスの依存関係をきれいに管理し、メンテナンスとテストコードを容易にします。
- REST APIエンドポイントモードをカスタマイズして、より柔軟で強(qiáng)力な検索機(jī)能を可能にするための追加のパラメーターを含めます。
- 特定のREST API要求を使用してWP_QUERYパラメーターを動(dòng)的に調(diào)整し、フィルターを使用して検索結(jié)果とエンドポイントの動(dòng)作を効果的に改善します。
-
post_type
- REST APIを使用したWordPress検索の改善
通常、SearchWPやRelevansiなどのプラグイン、またはElasticSearchとの統(tǒng)合(WordPressとはまったく異なるスタックを使用するテクノロジー)との統(tǒng)合を使用して、WordPress Searchを改善します。これらのタイプのプラグインは、より良い検索結(jié)果を提供し、多面的な検索インターフェイスでよく使用されます。これは、eコマースアプリケーションに非常に役立ちます。 WordPress REST APIを検索して、これらすべての同じ問(wèn)題と同じソリューションを継承します。この投稿では、最初に検索の仕組みとその制限を紹介します。次に、検索を変更し、2つの異なる方法を使用してSearchWPと統(tǒng)合する方法を検討します。
WordPressの組み込み検索機(jī)能には、通常、外部サービスを使用して改善が必要です。この記事は、WordPress REST APIの投稿ルーティングがどのように機(jī)能するかを変更するためのオブジェクト指向のアプローチに関するものですが、実際の例は検索を改善することです。
WordPressがフロントエンド(VUE、React、またはAngularを使用して構(gòu)築されるネイティブモバイルアプリケーションやWebアプリケーションなど)を切り離すためのバックエンドとして使用される場(chǎng)合、殘りの部分で高品質(zhì)の検索を行うことが重要ですAPI。この記事に示されているコードは、アプリケーションユーザーが適切な製品バリアントを見(jiàn)つけたり、複數(shù)の分類法に基づいて複雑なアルゴリズムに基づいてコンテンツを検索したり、プラグインをインストールする代わりにカスタムコードを作成したりする必要がある場(chǎng)合に役立ちます。
WordPress REST APIを使用して投稿を検索します
1つのサイトに投稿タイプの「製品」を含むすべての投稿を検索する場(chǎng)合は、「Taco Shirts」の検索用語(yǔ)を使用すると、/wp/v2/product?s=Taco Shirt
上記のように、
最初に、REST APIリクエストを行うときにWP_QueryのWordPressデータベースとの相互作用をバイパスする方法を見(jiàn)てみましょう。
これは、獨(dú)自の検索システムの結(jié)果を置き換えるために多くの検索プラグインが使用する戦略です(wp_queryのデフォルトで生成されます)。検索システムは同じデータベースを使用できます。また、ElasticSearchやApache Solrサーバーなど、API要求を介して他のデータベースに接続することもできます。
WordPressコアコードを見(jiàn)ると、フィルター「post_pre_query」がwp_queryクエリデータベースの前に実行されるが、SQLクエリの準(zhǔn)備ができた後に実行されることがわかります。このフィルターはデフォルトでnullを返します。値がNULLの場(chǎng)合、WordPressはデフォルトの動(dòng)作を継続します。WordPressデータベースをクエリし、結(jié)果をWP_POSTオブジェクトの単純な配列として返します。
一方、このフィルターの戻り値が配列(WP_POSTオブジェクトを含めることを希望する)である場(chǎng)合、WordPressのデフォルト動(dòng)作は使用されません。
post_pre_queryを使用してシミュレートされたwp_postを返す方法を見(jiàn)てみましょう。この戦略はテストに非常に役立ちますが、同じスキーマのより複雑なバージョンを使用して、別のデータベースをWordPressサイトと統(tǒng)合できます。
この例では、モックデータを使用していますが、SearchWPのクエリクラスなどを使用できます。このコードについて注意すべきもう1つのことは、WordPress REST APIによって作成されたWP_QUERYオブジェクトだけでなく、wp_Queryで実行されることです。 WordPress REST APIリクエストでない限り、フィルターを使用しないように変更しましょう。
// ... (代碼示例與原文相同) ...WordPress REST APIエンドポイントパラメーターを変更
// ... (代碼示例與原文相同) ...WordPress REST APIリクエストのために生成された検索結(jié)果を変更する方法を検討しました。これにより、クエリを最適化して検索結(jié)果を向上させることができますが、エンドポイントの異なるパターンが必要になる可能性があります。
たとえば、
製品エンドポイントの検索を許可したい場(chǎng)合は、オプションで他の投稿タイプを検索に含めることを許可する場(chǎng)合、昨年同じ問(wèn)題の別のソリューションを紹介しました。
水平フォーカス
許可されたエンドポイントパラメーターを変更する方法と、WP_QUERYパラメーターを作成するためにそれらを使用する方法を検討しようとしています。これらは2つの個(gè)別の懸念であり、単一の責(zé)任の原則は、各懸念に対してクラスを作成する必要があると述べています。しかし、これらの2つのクラスは懸念を共有します。
たとえば、さまざまな投稿タイプでクエリを許可する場(chǎng)合は、どのパブリックポストタイプと、SLUGおよびREST_BASEパラメーターが何であるかを知る必要があります。このすべての情報(bào)は、関數(shù)get_post_typesから入手できます。この関數(shù)の出力は、まさに必要なものではありません。それでは、クラスを設(shè)計(jì)して、私がリストしたばかりの要件に従ってデータをフォーマットし、アクセスするヘルパーの方法を提供しましょう。
利用可能なコンテナで使用する必要があるすべてのポストタイプデータの共通の形狀と考えてください:
// ... (代碼示例與原文相同) ...クラスでget_post_types()を呼び出す代わりに、コンストラクターを介して注入された依存関係として使用することに注意してください。したがって、このクラスは、WordPressをロードせずにテストできます。
これが、私がこの種類を「ユニットテスト可能」と表現(xiàn)する理由です。それは他のAPIに依存しておらず、副作用について心配することはありません。別の孤立したユニットとしてテストできます。フォーカスを分離し、その機(jī)能を小さな部分に分離し、ユニットテストのカバレッジを取得したら、コードを維持しやすくすることができます。次の投稿でこのタイプのクラスをテストする方法について説明します。
このクラスはwp_post_typeに依存していることを忘れないでください。統(tǒng)合テストのみがWordPressまたはその他の外部依存関係を使用できるため、私の単體テストではクラスを定義しません。このクラスは、アクションを?qū)g行するためではなく、データを表すためにのみ使用されます。したがって、その使用には副作用がないと言えます。したがって、実際のWP_POST_TYPEの代わりに、ユニットテストでモックを使用したいと思います。
依存関係の注入について言えば、この新しいクラスのオブジェクトを必要とするクラスは、同じパターンに従いたいと考えています。それらを必要とするクラスにredidposttypesをインスタンス化する代わりに、私たちは例を通過(guò)します。これは、rediverPosttypesとreportPosttypeを使用したクラスが分離されたままであり、個(gè)別にテストできることを意味します。
また、依存関係の注入を可能にし、このオブジェクトのプロパティを設(shè)定する必要があるため、コードの再利用を引き起こす可能性があります。カットと貼り付けを使用することも、PHP特性を使用して、クラス間でメソッドとプロパティをコピーするためのより高度で拡張可能な方法です。
これは、predPosttypesオブジェクトを他のクラスに注入するためのパターンを確立する特性です。
// ... (代碼示例與原文相同) ...
私たちの懸念の1つは、複數(shù)の場(chǎng)所でポストタイプに関する情報(bào)を知る必要があることです。たとえば、ポストタイプのスラグ。これは、以前のクロスカットの懸念とはわずかに異なります。最後に解決した問(wèn)題には、動(dòng)的データが含まれます。これで、1つの場(chǎng)所で複數(shù)の場(chǎng)所で使用する文字列を変更する必要があります。
クラス定數(shù)を持つクラスは、私たちにとってこの問(wèn)題を単純に解決しました:
// ... (代碼示例與原文相同) ...
ここで、コード全體でこれらの文字列を一貫させることができます。これは不必要なステップのようです。しかし、私のサンプルコードは投稿のポストタイプで動(dòng)作します。使用している投稿タイプを変更する場(chǎng)合は、このクラスを変更せずに変更する必要があります。これは、トム?マクファーリンが「クラスには変更する理由が1つしかないはずです」と書いたときの単一責(zé)任原則の好ましい定義に従っています。
REST APIエンドポイントモードを変更します
次に、ポストタイプのエンドポイントのパターンを変更する必要があります。そうすることで、WordPressはREST APIエンドポイントに、Post Typeパラメーターが許可され、リクエストを解析するときに新しいエンドポイントパラメーターが許可されることを通知します。
これは、post_typeプロパティを追加するクラスです。説明したばかりの特性u(píng)seSspreparedPosttypesを使用していることに注意してください。
このプロパティの設(shè)定では、このプロパティが配列プロパティであることをWordPressに伝え、配列の「列挙」インデックスを使用して許可された値を指定します。// ... (代碼示例與原文相同) ...
「enum」では、許可された値を列挙します。この場(chǎng)合、PredPosttypesクラスは、これが以前に解決されたクロスカットの懸念であるため、許可された値の配列を提供します。
このクラスは、ポストタイプまたはこの特定のユースケースと結(jié)合されていないことに注意してください。すぐに、このクラスを特定のポストタイプで機(jī)能させるために使用するフックに戻ります。
REST API WP_QUERYパラメーターを変更します前のセクションでは、新しいエンドポイントプロパティPOST_TYPEを利用可能にする方法について説明します。これは、実際には、WordPress REST APIによって生成されたWP_QUERYパラメーターを変更しません。最後のフィルターを除いて、すでに必要なものはすべて揃っています。
投稿タイプは、Coreコードが特にREST APIリクエストの変更を許可しないWP_QUERYパラメーターです。動(dòng)的に名前が付けられたフィルター-Rest _ {$ post_type} _Query - wp_queryパラメーターをオーバーライドできます。
これは私たちのクラスであり、Post_Typeパラメーターを注入しますが、以前は許可されていませんでした。
そのほとんどは、変更を行う必要があることを確認(rèn)し、wp_rest_requestのget_paramメソッドを使用してリクエストから値を取得することです。そのほとんどは、最初に一致するようにパターンを変更するため、自動(dòng)です。
// ... (代碼示例與原文相同) ...
WordPress REST API
によって要求されたwp_queryオブジェクトを変更します
この記事の最初の部分でこれを行う方法についてはすでに取り上げました。これは同じパターンを?qū)g裝するクラスです。 このコードはWordPressと密接に関連しており、テストできないことに気付いてください。 WordPressのWP_POSTを使用します。WordPressは、WordPressの定數(shù)をチェックし、WordPressのプラグインAPIと対話しています。 wp_postをシミュレートでき、定數(shù)を自分で設(shè)定できます。しかし、プラグインのAPI-これはテストする必要がある重要な機(jī)能です。次のいくつかの投稿では、このクラスをリファクタリングする方法については、そのフィルターを削除する効果以外のすべてをカバーし、統(tǒng)合テストを使用してその効果を確認(rèn)できるように、このクラスをリファクタリングする方法について説明します。 2つの理由で靜的方法を使用することを選択しました。まず、複數(shù)の場(chǎng)所で簡(jiǎn)単に追加して削除できます。たとえば、ModifyQueryクラスでは、必要に応じてこのフィルターのみをフックします。
靜的方法を使用することを選択したもう1つの理由は、関數(shù)が他のAPIと相互作用することです。本當(dāng)にユニットテスト可能なものになることはありません。このパターンは、靜的な方法を備えたクラスであり、統(tǒng)合テストでクラスを簡(jiǎn)単にシミュレートすることができるため、このシステムの一部での強(qiáng)い分離の欠如の影響を最小限に抑えます。
これまで見(jiàn)たコードは、WordPressから非常に組み合わされています。これには多くの利點(diǎn)があります。しかし、それはそれ自體で何もしないことを意味します。これはとても良いです。これまでのところ、ビジネスロジック要件のみを扱ってきました。次に、統(tǒng)合を検討する必要があります。 これは難しくありません。フックを追加するだけです。どんなフック? ModifyQueryおよびModifyschemaクラス用に設(shè)計(jì)したのとまったく同じ2つのフック。ビジネスロジックを切り離したいという欲求は、公開(kāi)インターフェイスを設(shè)計(jì)する際にコードを作成する実際の理由を考慮することができないという意味ではありません。それ以外の場(chǎng)合は、理由もなくコードに余分な複雑さを追加するだけです。 一般的に言えば、私はソフトウェアの複雑さをそれが人生を楽にするときにのみ増加しようとします。私は過(guò)去にこの道から逸脫しました。私たちは皆それを持っています、それは重要ではなく、赦しを練習(xí)します。 フックしようとしているクラスのメソッドは、まったく同じパラメーターとフックとまったく同じパラメーターを使用します。彼らの仕事は、これらの値を他のコンポーネントに割り當(dāng)てることです。
これは十分に近いです。それは機(jī)能します。フックを追加するための正式なシステムがないため、これは初期化のためにできる最善のことです。これはとても良いです。 WordPress統(tǒng)合テストに関する將來(lái)の記事で、より複雑でスケーラブルなブートプロセスを作成する方法について説明します。
(以下は元のFAQパーツであり、擬似オリジナルの作成は元のコンテンツに基づいて行われています)
ワードプレスの高度なOOPおよびカスタムREST APIエンドポイントに関するFAQ WordPressのオブジェクト指向プログラミング(OOP)の意味は何ですか? オブジェクト指向プログラミング(OOP)は、「オブジェクト」を使用してアプリケーションとソフトウェアを設(shè)計(jì)するためのプログラミングパラダイムです。 WordPress環(huán)境では、OOPは複雑なアプリケーションを開(kāi)発するためのシンプルで効率的で堅(jiān)牢な方法を提供します。開(kāi)発者は、関連するタスクをクラスやオブジェクトにグループ化できるようになり、コードの読み取り、再利用、保守が容易になります。 OOPは、データをカプセル化し、直接的な外部アクセスを防ぐことにより、アプリケーションセキュリティを強(qiáng)化します。 WordPressでREST APIエンドポイントをカスタマイズする方法は? WordPress REST APIは、さまざまなタイプのデータに対してデフォルトエンドポイントのセットを提供します。ただし、これらのエンドポイントをカスタマイズしたり、特定のニーズに合わせて新しいエンドポイントを作成したりできます。これは、プラグインまたはテーマの WordPress REST APIエンドポイントをカスタマイズすることの利點(diǎn)は何ですか? カスタムWordPress REST APIエンドポイントを使用すると、より効率的で柔軟な、安全なアプリケーションを作成できます。エンドポイントによって返されたデータを調(diào)整して、ネットワーク上で送信される不要なデータの量を減らすことができます。また、フォームの送信やレポートの生成など、特定のタスクを?qū)g行するエンドポイントを作成して、アプリケーションをよりインタラクティブでユーザーフレンドリーにすることもできます。 OOPはWordPressアプリケーションのセキュリティをどのように強(qiáng)化しますか? oopは、データとメソッドをオブジェクトにカプセル化することにより、WordPressアプリケーションのセキュリティを強(qiáng)化します。これは、オブジェクトのプロパティ(データ)とメソッド(関數(shù))が殘りのアプリケーションから隠され、オブジェクトのメソッドからのみアクセスできることを意味します。これにより、不正アクセスとデータの操作が防止され、セキュリティ侵害のリスクが減少します。 oopをWordPressの古いバージョンで使用できますか? はい、WordPressの古いバージョンでOOPを使用できます。ただし、WordPressの新しいバージョンがOOPのサポートを改善し、このパラダイムを使用して開(kāi)発を容易にするための多くの機(jī)能を含んでいることに注意することが重要です。したがって、OOPは古いバージョンで使用できますが、一般的に、WordPressの最新バージョンを使用して、最良の開(kāi)発エクスペリエンスを使用することをお?jiǎng)幛幛筏蓼埂? OOPのクラスとオブジェクトの役割は何ですか? oopでは、クラスはオブジェクトを作成するための青寫真またはテンプレートです。オブジェクトが持つべきプロパティ(データ)とメソッド(関數(shù))を定義します。一方、オブジェクトはクラスのインスタンスです。同じクラスの他のオブジェクトとは異なる可能性のある獨(dú)自のプロパティと方法のセットがあります。クラスとオブジェクトを使用すると、コードがより整理され、再利用可能で、メンテナンスが簡(jiǎn)単になります。 WordPressで新しいクラスを作成する方法は? WordPressのREST APIは何ですか? WordPressのREST APIは、HTTPリクエストを使用してWordPressサイトと対話できるインターフェイスです。 Get、Post、Put、Deleteなどの標(biāo)準(zhǔn)のHTTPメソッドを使用してアクセスできる投稿、コメント、ユーザーなど、さまざまな種類のデータのエンドポイントのセットを提供します。 REST APIを使用すると、外部アプリケーションからWordPressサイトからデータを作成、読み取り、更新、削除しやすくなります。 WordPressでREST APIにアクセスする方法は? 対応するエンドポイントにHTTPリクエストを送信することにより、WordPressのREST APIにアクセスできます。各エンドポイントは特定のタイプのデータに対応し、特定のHTTPメソッドをサポートします。たとえば、投稿リストを取得するには、 ワードプレス以外のアプリケーションでREST APIを使用できますか? はい、WordPress以外のアプリケーションでREST APIを使用できます。 REST APIはプラットフォームに依存しています。つまり、HTTPリクエストを送信してJSONデータを処理できるアプリケーションで使用できます。これにより、WordPressサイトをモバイルアプリ、デスクトップアプリ、その他のWebサービスなどの他のアプリケーションと統(tǒng)合するための強(qiáng)力なツールになります。 以上がWordPress用のAdvanced OOP:REST APIエンドポイントのカスタマイズの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。// ... (代碼示例與原文相同) ...
// ... (代碼示例與原文相同) ...
// ... (代碼示例與原文相同) ...
次のステップ:テストregister_rest_route()
関數(shù)を使用して実行できます。この関數(shù)を使用すると、エンドポイントのルートまたはURLを指定し、応答する方法(取得、投稿など)を定義できます。 {}
キーワードに続いてクラス名を使用できます。 new
/wp/v2/posts
エンドポイントにGETリクエストを送信できます。 REST APIはJSON形式でデータを返し、アプリケーションで処理および表示できます。

ホットAIツール

Undress AI Tool
脫衣畫像を無(wú)料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

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

ホットトピック











GITでWordPressプロジェクトを管理する場(chǎng)合、バージョンコントロールにテーマ、カスタムプラグイン、構(gòu)成ファイルのみを含める必要があります。 .gitignoreファイルをセットアップして、ディレクトリ、キャッシュ、および機(jī)密構(gòu)成のアップロードを無(wú)視します。 WebhooksまたはCIツールを使用して自動(dòng)展開(kāi)を?qū)g現(xiàn)し、データベース処理に注意を払います。共同開(kāi)発のために2つのブランチポリシー(Main/Develop)を使用します。そうすることで、競(jìng)合を回避し、セキュリティを確保し、コラボレーションと展開(kāi)効率を改善できます。

Gutenbergブロックを作成するための鍵は、その基本構(gòu)造を理解し、フロントエンドリソースとバックエンドリソースを正しく接続することです。 1.開(kāi)発環(huán)境の準(zhǔn)備:ローカルWordPress、node.js、 @wordpress/scriptsをインストールします。 2。PHPを使用してブロックを登録し、JavaScriptを使用してブロックの編集ロジックを定義します。 3. npmを介してJSファイルを構(gòu)築して変更を行います。 4.問(wèn)題に遭遇したときにパスとアイコンが正しいかどうかを確認(rèn)するか、リアルタイムのリスニングを使用してビルドを使用して、繰り返し手動(dòng)コンパイルを避けます。これらの手順に従って、シンプルなグーテンバーグブロックを段階的に実裝できます。

WordPressテスト環(huán)境を使用して、正式に発売される前に新機(jī)能、プラグイン、またはテーマのセキュリティと互換性を確保し、実際のWebサイトに影響を與えないようにします。テスト環(huán)境を構(gòu)築する手順には、次のものがあります。ローカルサーバーソフトウェア(LocalWP、XAMPPなど)のダウンロードとインストール、サイトの作成、データベースと管理者アカウントの設(shè)定、テスト用のテーマとプラグインのインストール。正式なWebサイトをテスト環(huán)境にコピーする方法は、プラグインを介してサイトをエクスポートし、テスト環(huán)境をインポートし、ドメイン名を置き換えることです。それを使用する場(chǎng)合、実際のユーザーデータを使用せず、定期的に役に立たないデータのクリーニング、テストステータスのバックアップ、時(shí)間內(nèi)に環(huán)境のリセット、および違いを減らすためにチームの構(gòu)成を統(tǒng)合することに注意を払う必要があります。

WordPressでは、カスタム記事タイプを追加したり、固定リンク構(gòu)造を変更したりするときは、書き換えルールを手動(dòng)で更新する必要があります。この時(shí)點(diǎn)で、コードを介してflush_rewrite_rules()関數(shù)を呼び出して実裝できます。 1.この関數(shù)は、テーマまたはプラグインのアクティベーションフックに追加して、自動(dòng)的に更新できます。 2。CPTの追加、分類、リンク構(gòu)造の変更など、必要に応じて1回のみ実行します。 3.パフォーマンスに影響を避けるために、頻繁に電話をかけないでください。 4。マルチサイト環(huán)境では、必要に応じて各サイトを個(gè)別に更新します。 5.一部のホスティング環(huán)境は、ルールの保存を制限する場(chǎng)合があります。さらに、[保存]をクリックして「設(shè)定>ピン留めリンク」ページにアクセスすると、自動(dòng)化されていないシナリオに適した更新もトリガーできます。

tosetupredirectsinwordsusitheTheTheTheTheTheTheThe、LocateTethefileNyinyOursite’sRootDirectoryAnddRedireCtRulesabovethe

usingsmtpforwordpressemailsimprovesdeleverability andReliability comparedtothededefaultphpmail()function.1.smtpauthenticateswithyouremailserver、reducespamplacement.2.somehostsdisablephpmail()、makesmtpn devering

応答性のあるWordPressテーマデザインを?qū)g裝するには、まず、HTML5とモバイルファーストメタタグを使用し、header.phpにビューポート設(shè)定を追加して、モバイル端子が正しく表示されるようにし、HTML5構(gòu)造タグでレイアウトを整理します。第二に、CSSメディアクエリを使用して、さまざまな畫面幅でスタイルの適応を?qū)g現(xiàn)し、モバイルファーストの原則に従ってスタイルを書き込み、一般的に使用されるブレークポイントには480px、768px、1024pxが含まれます。第三に、畫像とレイアウトを弾力的に処理し、最大幅を設(shè)定します。畫像に100%を設(shè)定し、固定幅の代わりにFlexBoxまたはグリッドレイアウトを使用します。最後に、ブラウザ開(kāi)発者ツールと実際のデバイスを介して完全にテストし、パフォーマンスを最適化し、応答を確保する

IntegrateThird-PartyApisIntOwordPress、次のようになります。
