【WordPress】オリジナルテーマを作成する

WordPressをCMSとしてサイトを作成する場合、プロジェクトファイルにWordPressのテンプレートファイル類をインストールします。

WordPressのファイルはPHPで作成されているため、自分のPC上で動作させるには、

・PCへのPHPインストール

・ローカル環境下でプロジェクトのPHPプログラムを動作させるソフトウェア

が必要です。

一般的に使用されるのは『LOCAL by FlyWheel』です。

・WordPress使用したプロジェクトの作成

・ブラウザで開発中の画面の確認

・WordPress編集管理画面

これらの操作は全てLOCALの画面で簡単に実行できます。

LOCALなどで作成したプロジェクトファイルにPHPコード書き込んで開発をしていくわけですが、インストール済のWordpressのソースファイルには予め様々な設定がされています。

テンプレート階層

まずテンプレート階層が実装されていて、特定のファイル名を作成するとプログラムが自動的にルーティング処理を行ってくれます。そのため各記事の個別ページを作成したい場合は、テーマのディレクトリに『single.php』を作成します。予めWordpressプログラムには『single.php』は各記事の個別ページとして使用するという設定がされているので、投稿した記事をクリックすると『single.php』が表示されます。

項目内容
テンプレート階層どのPHPファイルがどのページで使われるか決まる仕組み
テンプレートタグthe_title()the_content()などの簡単な関数
ループ(The Loop)記事一覧を出力する基本構造(while ( have_posts() ) : the_post();
カスタム投稿タイプ(CPT)記事以外のオリジナルコンテンツを作る仕組み
カスタムフィールド(ACFなど)記事に追加情報(例:価格、日付)を持たせる仕組み
アクションフック・フィルターフックWordPressの処理に自分のコードを差し込む仕組み
プラグインの基本構造独自機能をプラグインとして追加するための最低限の知識
セキュリティ対策(エスケープ処理)出力時に悪意あるコードを防ぐ (esc_html()など)

WordPressはフレームワーク?

既に用意されているWordpressファイル群(PHP)やテンプレートタグを使用して開発するのは、フレームワークの使用方法と非常に似ています。wordpressがPHPのフレームワークlaravelと異なる点はwebサイト構築に特化している点。また一般ユーザー向けのため、ソースコードではなく管理画面からコンテンツを視覚的に編集することもできるように設計されています。

比較項目WordPressLaravel
目的Webサイトやブログ構築に特化汎用的なWebアプリケーション開発
ターゲット一般ユーザー+開発者開発者向け
操作方法管理画面(ダッシュボード)中心コードを書くことが前提
カスタマイズ方法PHP+独自の仕組み(テーマ・プラグイン)で拡張自由にPHPで設計(フレームワーク機能活用)
インストール直後すぐにサイトが作れる(初期テーマあり)自分で設計・機能追加する必要あり
  • WordPressは「Webサイト制作専用のCMS」「簡易フレームワーク的な性質」を持っている。
  • Laravelは「アプリケーション開発専用のフレームワーク」で、管理画面も基本的には自作です。

記事データ

WordPress管理画面で記事を投稿すると記事のデータは自動的にデータベースに保存されます。投稿内容のタイトルや本文、サムネイル画像情報はブラウザの画面に出力される際に自動的にクラス名が付与され、1からPHPコードを記述しなくても<?php the_title(); ?>などのテンプレートタグを使用するだけで簡単に記事情報を読み込むことができます。