Go to top Go to bottom

WordPressのテーマを作成するのに必要なファイルは2つしかない、ということを前回の記事でお伝えしました。将来的には、ほかにもたくさんのファイルが必要になるのですが、いきなりちゃんとしたテーマを作ろうとすると、WordPressをしっかり理解することができません。

この記事からは、最小構成のテーマを使って、テーマ作成に必要なスキルを順番に学習していきたいと思います。

なお、WordPressを動作させる環境が揃っていない方は、次の2つの記事を参考にして先にセットアップしておいてください。

自分のテーマを有効化しよう

早速ですが、まずは自分のテーマを作成して有効化するところまでいきましょう。

子テーマを作成したときと同じように、themeフォルダに自分のテーマのフォルダを作成します。

PATH

C:\xampp\htdocs\your-site-name\wp-content\themes

フォルダの名前は、小文字とハイフンだけで構成してください。ぼくは「minimalist」としてみました。

テーマ用のフォルダを作成
テーマ用のフォルダを作成

このフォルダの中に、次の2つのファイルを作成します。

  • style.css
  • index.php

実はこれだけでもテーマは動作するのですが、もう少しわかりやすくしておきます。

まず、style.cssには次のように記述してください。

/*
 Theme Name:   Minimalist
 Description:  A minimal theme for WordPress
 Author:       Jun Akizaki
 Version:      1.0.0
*/
Theme Nameテーマの名前を入れます
Descriptionテーマの説明を記載します。必須ではありません
Author作者の名前を入れます。必須ではありません
Versionバージョン番号です。必須ではありません

コメントを用いて記載されるこの部分は「スタイルシートヘッダ」と呼ばれ、テーマに関する情報を記載し、WordPressに認識させます。

テーマを公開したり、配布したりする場合は、ライセンス情報やURLなどを、ここを参考に追記してください。

次に、index.phpには次のように書いてみます。

<?php echo 'Hello, WordPress!'; ?>

とりあえずコピー&ペーストで大丈夫です。保存したら、テーマを有効化してみましょう。

テーマを有効化
テーマを有効化

有効化に成功したら、サイトを表示してみてください。

テーマ有効化後
テーマ有効化後

真っ白のページの左上に”Hello, WordPress!”と表示されていれば成功です。

これで練習環境が準備できました!

PHPコードの書き方

上のコードについて

先ほどindex.phpに記述した<?php echo 'Hello, WordPress!'; ?>について少し解説していきます。

まず、PHPのコードを動作させるには、<?php /* code */ ?>タグで囲む必要があることは前回の記事で説明しました。

では、次に出てくるechoとは何でしょうか。

PHP言語構造

echo (string $arg)

文字列$argを出力します。echoは特殊な構造なので、使用するときに()は必要はありません。
echo '出力したい文字';のように使います。

文字をシングルクォーテーション(またはダブルクォーテーション)で囲むと文字列(文字のデータ)になります。文字列をechoするとHTMLとして出力されるので、ブラウザに表示することができます。

最後に、処理を書き終わったら”;“(セミコロン)を記述します。1行の処理の終わりにはセミコロンを忘れないようにしてください(忘れるとエラーになって画面が真っ白になります)。

少し練習してみよう

処理を複数行書く場合は、次のように記述できます。

<?php
  echo 'Hello, WordPress!';
  echo 'WordPressでテーマを作成していきます。';
?>

これを実行するとどのようになるか想像できるでしょうか。

2行の文字列が表示されそうですが、実際には次のように1行で表示されます。間にスペースも入りません。

複数行のecho
複数行のecho

では、改行したい場合はどのようにすれば良いでしょうか。HTMLでは<br />を使って改行したり、<p>で段落を形成したりますね。ぼくはあまり<br />が好きではないので、<p>を使って改段落してみます。

<?php
  echo '<p>Hello, WordPress!</p>';
  echo '<p>WordPressでテーマを作成していきます。</p>';
?>

文字列の中にHTMLタグを記述すると、そのまま出力されます

pタグの出力
pタグの出力

段落が形成され、2行の表示になりました(ブラウザ上で右クリックして[ページのソースを表示]からソースを確認してみると、よりわかりやすいと思います)。

このように、echoは文字だけでなく、HTMLのタグも出力することができます。

<?php
  echo '<h1>Hello, WordPress!</h1>';
  echo '<p>WordPressでテーマを作成していきます。</p>';
?>

<h1>を記述すれば

h1タグに変更
h1タグに変更

見出しとして出力されます。簡単ですね!

HTMLコードの書き方

引き続きindex.phpで練習していきます。

HTMLのコードは、PHPファイルに直接記述することができます。index.phpの中身をすべて消して、次のようなHTMLを書いてみましょう。

<!DOCTYPE html>
<html>

<head>
  <title>HTML</title>
</head>

<body>
  <h1>Hello, WordPress!</h1>
  <p>WordPressでテーマを作成していきます。</p>
  <p>WordPressをダウンロードするには <a href="https://wordpress.org/">ここ</a>をクリックしてください。</p>
</body>

</html>

何ら変哲もないHTMLですね。ブラウザで確認すると次のようになります。

HTMLを記述
HTMLを記述

このように、HTMLコードはこれまでの静的なWebサイトと全く同じように記述することができます。

PHPとHTMLを混ぜて記述してみよう

PHPファイル内には、PHPとHTMLのコードを混ぜて記述することができます。

<!DOCTYPE html>
<html>

<head>
  <title>PHPとHTML</title>
</head>

<body>
  <h1><?php echo 'What day is today?'; ?></h1>
  <p>Today is <span style="color:red"><?php echo date("l"); ?></span>, I think.</p>
</body>

</html>

<h1><?php echo 'What day is today?'; ?></h1>は先ほどど異なり、h1タグの中でechoを呼んで文字列を出力しています。

<p>Today is <span style="color:red"><?php echo date("l"); ?></span>, I think.</p>では、date()という関数(機能)を使って、今日の曜日を出力しています。動的に出力しているので、アクセスする日ごとに曜日が変わります。

PHPとHTMLを混ぜて記述した結果
PHPとHTMLを混ぜて記述した結果

ここで、前回の記事の内容を思い出してください。テーマを構成するPHPがテンプレートと呼ばれる理由を、single.phpの例を用いて解説しました。

構成だけを定義
構成だけを定義

ここから想像すると

<!DOCTYPE html>
<html>

<head>
  <title>HTML</title>
</head>

<body>
  <h1><?php /*記事のタイトルを取得する処理*/ ?></h1>
  <p><?php /*記事の本文を取得する処理*/ ?></p>
</body>

</html>

と書ければよさそうですね。厳密にはこれでは少し足りないのですが、考え方はまさにその通りです!

せっかくなので、片鱗を見ておきましょう。

まず、この記事を参考に、記事を投稿しておいてください。”Hello, World”の記事が残っている場合は、特に投稿の必要はありません。

記事の投稿
記事の投稿

つづけて、コードを次のように変更します(テストコードですので、厳密には間違っています)。

<!DOCTYPE html>
<html>

<head>
  <title>HTML</title>
</head>

<body>
  <h1><?php the_post(); the_title(); ?></h1>
  <p><?php the_content(); ?></p>
</body>

</html>

ブラウザで確認してみましょう。

投稿を取得するテスト
投稿を取得するテスト

投稿した内容が表示されていますね! 意外に簡単に記事を表示することができてしまいました。

コードを見ると、いくつか謎の記述があります。名前から少し推測できますが、the_title()がタイトルを取得する関数(命令)、the_content()が記事の内容を取得する関数です。

これらの詳しい説明はまた後の記事で行いますので、ここではコーディングのイメージがつかめれば大丈夫です。

関数

関数とは、いくつかの処理をまとめて名前をつけたものです。常に「関数の名前()」の形をしています。()の中は空の場合もあれば、何か入れる場合もあります。()の中に入れるものを引数(ひきすう)といいます。

おわりに

今回は、自分のテーマを有効にして、PHPやHTMLコードの書き方について説明してきました。次のチェックリストで、理解度を確認してみてください。

  • 新規テーマを作成して、有効化することができる
  • index.phpにPHPコードを記載することができる
  • index.phpにHTMLコードを記載することができる
  • index.phpにPHPとHTMLコードを混ぜて記載することができる

さて、とうとうPHPが登場してしまいましたので、次回は最低限必要なPHPコードの知識について説明していきます。index.phpが空っぽな今が練習する絶好のチャンスです!

つづけて読む

この記事には続きがあります。

ぜひ合わせて読んでみてください!