ホームページ  >  記事  >  バックエンド開発  >  WordPress テーマ フレームワークの仕組み

WordPress テーマ フレームワークの仕組み

WBOY
WBOYオリジナル
2016-07-30 13:31:051104ブラウズ

テーマフレームワークは非常に強力であると言えます。技術に詳しくない WordPress ユーザーにとって、テーマ フレームワークを使用すると、カスタマイズされたテーマを実行しているように見えるユニークな Web サイトを構築できます。また、WordPress 開発者にとっては、DRY (コピーしないでください) の使用に役立ちます。自分で)カスタム Web サイトをすばやく構築します。

サードパーティのフレームワークを一定期間使用したことがあり、そのコードが肥大化して柔軟性に欠けていることがわかり、それに非常に不満を感じている場合、または単に独自のコードを完全に制御したい場合は、あなた自身のテーマフレームワークが間違いなく最良の選択です。

この一連のチュートリアルでは、独自の WordPress テーマ フレームワークを作成して、自分自身またはクライアント向けの Web サイトを構築したり、Web サイトを公開して他のユーザーと共有したりする方法を学びます。フレームワークの基本を備えた親テーマの作成、追加機能、フック (「フック」とも呼ばれます) などの追加を含む、次の学習段階を実行します。また、子テーマやプラグインでこれらのテクニックを使用する方法、コードを一般公開する方法なども学びます。

しかし、始める前に、テーマ フレームワークがどのように機能するのか、そして標準の親テーマと正確に何が違うのかを知る必要があります。

私は、2 種類のクライアント Web サイトに適用される 2 つのテーマ フレームワークの開発に時間を費やし、時間をかけてアプリケーションの一部を強化および改善し続けました。また、サードパーティと協力していくつかのテーマ フレームワークを開発しました。私の経験から、テーマ フレームワークには次の主な機能が必要です:

  • 通常、主に親テーマで構成され、子テーマと組み合わせて使用​​するように設計されています。親テーマを単独で使用する場合もありますが、親テーマを子テーマと組み合わせて使用​​する必要がある場合もあります。子テーマは、WordPress コーデックスでそれぞれ「ベース/スターター テーマ」および「コード ベース」として定義されています。
  • 通常、子テーマやプラグインによって悪用される可能性のあるいくつかのフックや関数が含まれています。テーマ フレームワークはエコシステム全体の基盤であり、フレームワークに接続するいくつかのプラグインも含まれています。
  • プログラミングができないユーザーが使用する場合は、ユーザーが自分のニーズに応じてテーマをカスタマイズできるテーマ オプション ページが含まれます。デザイン、レイアウト、機能、コンテンツなどは多様かつ混在可能です。場合によっては、テーマ カスタマイザーを介して一部の機能が提供される場合があります。
  • 複数のウィジェット領域が含まれる場合があるため、技術者以外のユーザーでも WordPress ウィジェット (フレームワーク専用に作成したプラグインを介して追加されたウィジェットを含む) を介してコンテンツやコードを追加できます。
  • jQuery スライダーやライトボックス効果などのスクリプト ライブラリ機能が含まれる場合もあります。管理者とユーザーのニーズに応じて、これらをテーマ フレームワークに組み込むか、フレームワークにフックするプラグインを提供する必要がある場合があります。
  • 通常は拡張可能で、フックを使用して子テーマや関連プラグインを通じて機能を拡張できます。

上記のポイント 1 と 2 は基本的なものであり、親テーマがなければテーマ フレームワークは存在しません。それらのフックや機能を備えていない親テーマは、基本的な親テーマとしか考えられず、本当のテーマフレームワークとは言えません。

上記はテーマフレームワークについてですが、どのように機能するのでしょうか?まずはテーマフレームワークの要素を見てみましょう:

  • 親テーマとオプションの子テーマ
  • アクションとフィルターフック
  • 関数
  • テーマオプション
  • ウィジェット
  • スクリプト
  • 拡張性

AD:ウェブスタジオ

親テーマと子テーマ

テーマフレームワークの主なコンポーネントは親テーマであり、次の 2 つの方法で設計できます:

  • 初期テーマとして、テーマオプションインターフェイスまたはテーマデバイスを通じてカスタマイズできます。カスタマイズ。例としては、Atahualpa や Thematic などがあります。これら 2 つは、サブテーマを使用しないスタンドアロン テーマの良い例として役立ちます。
  • ウェブサイトの基盤は子テーマを通じて追加する必要があるため、この子テーマがないとウェブサイトではテーマフレームワークが効果的に使用されません。この例としては、Hybrid Core や Genesis が挙げられます。これらには、子テーマや、もちろん関連するプラグインを通じて利用できる一連のフックや関数を備えた、テーマ内で通常見られるいくつかの基本的なコードが含まれています。これらはすべて、テーマフレームワークに適した API (Application Programming Interface) を構成します。

テーマ フレームワークの重要な機能の 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 チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。