[WordPress]  ワードプレスが動作する仕組み

スポンサーリンク

ワードプレスのファイル構成

http://www.nsthink.com/wordpress/を参考に勉強しました。

ワードプレスの構成は、下記のようになっています。

ワードプレスのフォルダー構造図

http://www.nsthink.com/wordpress/より

基本的にテーマをカスタマイズするときは、テーマフォルダのファイルをカスタマイズしますが、子テーマを作り、テーマが更新されるときにそなえるべきです。

テーマフォルダ

テーマフォルダの中身は、下記のようなファイルから構成されています。
・個々の記事のファイル

index.php、single.php、page.php、archive.php、search.php、404.php

・上のテンプレートが共通で利用するテンプレートファイル

header.php、sidebar.php、footer.php

・スタイルシート(style.css)ファイル

libraryなどのほかのフォルダに入っている場合があります。

・画像用の(images)フォルダ

テーマ用画像の保存先です。

テンプレート階層(ファイルの表示優先順位)

home.phpやindex.phpなど内容が似ているようなファイル(テンプレート)がありますが、これらは優先順位をもとに表示されるようになっています。

優先順位( 高い←← →→低い )

優先順位( 高い←← →→低い )
トップページ front-page.php
(固定ページの場合)
home.php
(投稿の場合)
トップが固定ページの場合、固定ページの優先順位のテンプレート*1〜*4 index.php
固定ページ カスタム
テンプレート
*1
page-[slug].php
*2
page-[ID].php
*3
page.php
*4
index.php
投稿 single-
[posttype].php
single.php index.php

★アーカイブ(一覧)ページ

優先順位( 高い←← →→低い )
カテゴリー別 category-
[slug].php
category-
[ID].php
category.php archive.php index.php
日付別 date.php archive.php index.php
タグ別 tag-[slug].php tag-[ID].php tag.php archive.php index.php
著者別 author-
[name].php
author-[ID].php author.php archive.php index.php
カスタム分類 taxonomy-
[taxonomy]-
[slug].php
taxonomy-
[taxonomy].php
taxonomy.php archive.php index.php

★その他のページ

優先順位( 高い←← →→低い )
検索結果 search.php  index.php

http://server.change.jp/archives/739/を参考

WPの動作の仕組み

WordPress では、各ページにアクセスがあった時に、そのページの出力に必要な情報をまず読み込んでから、そのページの基となる、先ほどのテンプレートを呼び出す。

基本的にパーマリンクなどはindex.phpに?s=xxx&cat=2222のように引数を渡されて処理されている。

○WPの動作の仕組み

  • WordPressは,wp,wp_rewrite,wp_query という3つのクラスにより,リクエストされたURIを処理する。(リクエストされたURIをこれらの機能に渡すことで何をするか決定する)
  • wp_rewrite クラス:ルーティング機能
  • wp_query クラス:投稿を読み込む際に使われるクラス。wp_rewrite クラスが解析した結果を受け取り,記事やページを抽出し、抽出された記事やページは,その属性によってテンプレートを使ってHTMLへと変換される。
  • あるURLにアクセスすると URLから必要なデータのクエリを発行し、グローバル変数 $wp_query に格納して、テンプレート階層に従ってデータを表示する。
  • グローバル変数 $wp_query には「posts」というプロパティがあり、そこにすべての投稿のデータ格納されていて、個々の投稿のデータは「post」というプロパティに格納されている。

引用:http://www.webdesignleaves.com/wp/wordpress/162/

まとめ

ワードプレスの動作は入門者にわかりにくいですが、基本的には

URLが解析される

そのURLをもとにデータがグローバル変数にセットされる

そのデータをテンプレート階層にしたがってテンプレートにわたす

といった形で表示されていくようです。

スポンサーリンク

Leave a Reply