テーマフレームワークは非常に強力であると言えます。技術に詳しくない WordPress ユーザーにとって、テーマ フレームワークを使用すると、カスタマイズされたテーマを実行しているように見えるユニークな Web サイトを構築できます。また、WordPress 開発者にとっては、DRY (コピーしないでください) の使用に役立ちます。自分で)カスタム Web サイトをすばやく構築します。
サードパーティのフレームワークを一定期間使用したことがあり、そのコードが肥大化して柔軟性に欠けていることがわかり、それに非常に不満を感じている場合、または単に独自のコードを完全に制御したい場合は、あなた自身のテーマフレームワークが間違いなく最良の選択です。
この一連のチュートリアルでは、独自の WordPress テーマ フレームワークを作成して、自分自身またはクライアント向けの Web サイトを構築したり、Web サイトを公開して他のユーザーと共有したりする方法を学びます。フレームワークの基本を備えた親テーマの作成、追加機能、フック (「フック」とも呼ばれます) などの追加を含む、次の学習段階を実行します。また、子テーマやプラグインでこれらのテクニックを使用する方法、コードを一般公開する方法なども学びます。
しかし、始める前に、テーマ フレームワークがどのように機能するのか、そして標準の親テーマと正確に何が違うのかを知る必要があります。
私は、2 種類のクライアント Web サイトに適用される 2 つのテーマ フレームワークの開発に時間を費やし、時間をかけてアプリケーションの一部を強化および改善し続けました。また、サードパーティと協力していくつかのテーマ フレームワークを開発しました。私の経験から、テーマ フレームワークには次の主な機能が必要です:
上記のポイント 1 と 2 は基本的なものであり、親テーマがなければテーマ フレームワークは存在しません。それらのフックや機能を備えていない親テーマは、基本的な親テーマとしか考えられず、本当のテーマフレームワークとは言えません。
上記はテーマフレームワークについてですが、どのように機能するのでしょうか?まずはテーマフレームワークの要素を見てみましょう:
AD:ウェブスタジオ
親テーマと子テーマ
テーマフレームワークの主なコンポーネントは親テーマであり、次の 2 つの方法で設計できます:
テーマ フレームワークの重要な機能の 1 つは DRY 原則であるため、親テーマは可能な限りテンプレート パーツとインクルード ファイルを利用します。これは、テーマ内の複数の場所で同じコードにアクセスできることを意味します。これにより、テンプレート コンポーネントを置き換えるか、インクルード ファイルを作成するだけで済むため、子テーマのコードを書き直すのも簡単になります。
親テーマと子テーマの概念については「子テーマチュートリアル」で紹介するため、ここでは当面説明しません。多くのテーマ フレームワークには、それ自体をサポートする一連のサブテーマが装備されていますが、より適切な他のサブテーマが必要な場合は、自分で開発する必要があります。
独自のメイン フレームワークを開発している場合は、各プロジェクトの開発作業の重複を避けるために、少なくとも 1 つの「初期」サブテーマを作成することをお勧めします。一部のサブトピック ブログとブログ以外のサイト。
アクション フックとフィルター フック
カスタム コードを追加するか、テーマの動作方法を変更する場合、テーマ フレームワークには、子テーマとプラグインにリンクされた一連のフックが含まれます:
どのフックを含める必要があるかを考えるために、初期の段階で時間をかけて考える価値があります。そうすることで、フックを介して含める必要があるものと、テンプレート ファイルに直接書き込むことができるものを知ることができます。これについては、次のチュートリアルで学習します。
関数
テーマ フレームワークには一連の関数が含まれる場合もあります。これらの一部は定義したアクション フックやフィルター フックにフックされますが、その他はテンプレート タグなどの関数であり、子テーマはこれらの関数を使用できます。
一部のクライアント Web サイトでカスタム関数を使用している場合は、それらをテーマ フレームワークに追加することもできます。また、すべての機能を有効にする必要はありません。サブサイトで add_action() 関数を使用して、親テーマに関連する機能のみを有効にする必要があります。
テーマ オプション
テーマ オプション インターフェイスは、複雑なテーマ、特に技術者以外のユーザーにとって便利です。一部の主要なテーマ フレームワークには、独自の管理領域に複数のテーマ オプション インターフェイスが含まれており、オプションには、機能の切り替え、レイアウトの変更、コンテンツの追加、色、背景画像、フォント、タイトル画像などのデザイン要素の変更が含まれます。
テーマ カスタマイザーを使用して多くのオプションを完了することを選択できるのは、ユーザーがテーマをカスタマイズする際に変更を直接確認できることです。これは、Mark Wilkinson と開発した学校 Web サイトである Edupress テーマ フレームワークのために行いました。
ウィジェットエリア
一連のウィジェットエリアを追加する必要があるかどうかは、テーマフレームワークの利用者によって異なります。自分自身または少数の開発者チームのみが使用する場合は、一連のウィジェットエリアを追加する必要はないかもしれません。標準のサイドバーとフッターの上にウィジェット領域を追加します。
ただし、テーマ フレームワークが技術者以外のユーザーを対象としている場合は、テーマ フレームワークのさまざまな場所に複数のウィジェット領域を登録することで、より柔軟性を高めることができます。サイトのヘッダー、標準のサイドバーとフッター、コンテンツの前後、およびフッターの下にウィジェット領域を登録することもできます。
私のクライアントの Web サイトで使用されているテーマ フレームワークには、フッターに 4 つのウィジェット領域が含まれています。テーマはどのウィジェット領域が塗りつぶされているかを確認し、それに応じて CSS クラスを追加するため、塗りつぶされたウィジェット領域はそれぞれページの適切な部分を占めます。
ウィジェット領域はテンプレート ファイルに直接書き込むことも、(私のように) サイト上の関連する場所にアクション フックを介して追加することを決定することもできます。これは、オプションのウィジェット領域またはカスタム コードとして子テーマでオーバーライドできることを意味します。
スクリプト
特定のスクリプトが独自のテーマ フレームワーク上に構築された一部の Web サイトで使用される可能性がある場合、またはユーザーが技術的知識がなく、より多くのオプションを提供したい場合は、特定のスクリプトをスライダーやライトボックス スクリプトなどのフレーム。これにより、ユーザーは追加のプラグインをインストールする必要がなくなりますが、スクリプトが実際に必要でない場合は肥大化する可能性があり、この点では不十分です。
繰り返しになりますが、これは視聴者と予想されるニーズによって異なります。作業しているフレームワークが単なるフレームワークである場合は、これらのスクリプトを使用してプラグインを開発 (または特定) し、必要なときにいつでも使用することをお勧めします。
実際にこれらのスクリプトを含める場合、テーマ オプション インターフェイスに有効化および無効化のオプションを含めることと同じになります。
スケーラビリティ
フレームワークが現在特定の一連の Web サイトに役立つ場合、将来的にはスケーラブルであることが必要になる場合があります。フレームワークの中核を形成する親テーマは、このエコシステムの中心に相当します。あなたとテーマのユーザーは、Web サイトをさらに改善し、オプションや機能を追加します。これには以下が含まれます:
あなたのフレームワークを使用したい他の開発者にとって役立つドキュメントが含まれる場合もあります: 最も重要なテーマ フレームワークには、開発者がフレームワーク上に構築する Web サイトをカスタマイズしたり、他のユーザーが子テーマを作成したりするために使用できる広範なドキュメントが付属しています。またはプラグイン。
概要
テーマ フレームワークは、WordPress 開発者の武器庫の中で非常に強力なツールです。ご覧のとおり、WordPress を使用してカスタム WordPress サイトを作成する何千人もの (技術者ではない) 所有者だけでなく、他の開発者にとっても、これらの開発者がさまざまな Web サイトを作成したいかどうかは重要です。自分自身またはその顧客。
テーマ フレームワークには通常、拡張性と柔軟性といういくつかの特性があり、子テーマを使用したり、フレームワークが提供する関連機能やフックにアクセスしたりすることで、Web サイトを簡単にカスタマイズできます。
テーマ フレームワークがどのように機能するかはすでに理解しています。このシリーズの次のレッスンでは、フレームワークが何をする必要があるか、誰のために機能する必要があるかなどを理解します。これは、テーマ フレームワークを決定するのに役立ちます。最適な開発パス。
著作権表示: 転載する場合は出典URLを明記してください
上記では、WordPress テーマ フレームワークがどのように機能するかをさまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。