WordPressでサイト作成(独自デザイン)

HTMLコーディングされたサイトをWordPress化する方法を学習します。

WordPress化の目的

HTMLコーディングされたサイトをWordPress化するうえでの仕様を確認します。

できるようになること
  • コーディングされたオリジナルデザインをそのまま生かす
  • お知らせの記事投稿
  • TOPページに最新のお知らせを表示
  • 実際に動くお問い合わせフォーム
できないこと(今回は仕様に含まないこと)
  • 管理画面からページデザインやレイアウトのの変更
  • お知らせページ以外のページ内容を変更する
  • 管理画面からグローバルメニューの変更する
  • 新規ページの追加

1. 事前準備

1-1. ローカル環境の作成

  1. ローカル環境の作成

    1. Localを立ち上げ、左下の【+】ボタンをクリックします。

    2. [Create a new site]が選択されている状態で、そのまま【Continue】を押して進みます。

    3. サイト名で「moen」と入力して、【Continue】を押して進みます。

    4. [Preferred]が選択されている状態で、そのまま【Continue】を押して進みます。

    5. 【Wordpress username】と【Wordpress password】に下記を入力して、【Continue】を押して進みます。

      ユーザー名
      admin
      パスワード
      password
    6. サイトの作成が始まります。
      途中で下記のような入力を求められたら自身のMac/Winにログインするときに入れるパスワードを入力して【OK】を押してください。
      (※ 先ほど設定時に入力したパスワードではないので注意!)

    7. 少し待って下記のような表示が出たら作成完了です。

  2. 初期設定

    1. 【WP Admin】ボタンを押して管理画面へログインします。

      ログイン時のID/パスワードは先ほど設定した下記のものを入れてください。

      ユーザー名
      admin
      パスワード
      password

      Chromeではログイン後下記の表示が出ることがありますが、現状はインターネット上ではなくPC内で環境を作っているだけなので気にしなくてOKです。
      【閉じる】を押して閉じてください。

    2. 左メニューから【Settings > General】をクリックして、下記項目を設定します。

      • 言語設定(Site Language)で「日本語」に変更
      • タイムゾーン(Timezone)を「UTC+9」に変更

1-2. スターターテーマの適用

  1. テーマ作成のベースとなる【スターターテーマ】を下記からダウンロードします。

    スターターテーマのダウンロード
  2. ダウンロードしたファイルを解凍し、フォルダ名を【starter】→【moen】に変更します。

  3. Localのサイトフォルダの中にある【wp-content】フォルダの中にある【themes】フォルダ内に【moen】フォルダごと移動します。

    Localアプリを立ち上げて、サイト名のすぐ下にある【Go to site folder】をクリックします。

    フォルダが開いたら【app > public】を開いたところがサイトフォルダになります。

  4. VSCodeを開いて2.のmoenフォルダを開き、その中のstyle.cssファイルを開きます。

  5. Theme Name: に続く名前を【Starter Theme】→【Moen】に書き換えて保存します。

  6. WordPressの管理画面を開き、【外観】→【テーマ】を選択し、【Moen】を有効化します。

1-3. HTMLコーディングファイルの準備

  1. コーディング済みの下記ファイルをダウンロードして解凍します。

    HTMLコーディングファイルのダウンロード
  2. 解凍した【moen_complete】のフォルダごと1-2で設置した【moen】フォルダ(wp-content > themes > moen)に移動します。

  3. 【moen_complete】のフォルダ内の【assets】フォルダを【moen】フォルダ内に移動します。

最終的に下記のような構成になればOKです。

2. ページ構成とタイプの確認

HTMLコーディングされたサイトのページ構成は以下の通りです。
WordPressではページタイプによって作り方が変わるため、各ページがどのタイプになるのか把握しておく必要があります。

参考: WordPressの基礎知識 ページタイプ

ページ名 ファイル名 WordPress化したときのURL WordPress上でのページタイプ
TOPページ index.html / フロントページ
店舗案内ページ about.html /about 固定ページ
お問い合わせページ contact.html /contact 固定ページ
お知らせ一覧ページ news-list.html /news 記事(投稿)ページ: 一覧
お知らせ記事ページ news-detail.html /news/(個別ページ名) 記事(投稿)ページ: 詳細

WordPressテーマのテンプレートはページタイプ毎に下記ファイル名で作成する必要があります。

WordPressテーマのタイプ別ファイル名

フロントページ front-page.php
固定ページ page.php, page-xxxx.php
記事ページ(一覧) archive.php, archive-xxxx.php
記事ページ(個別) single.php, single-xxxx.php

※ xxxxは個別指定する場合のスラッグ名です。スラッグについては後述します。

3. TOPページ

3-1. TOPページページ用テンプレートファイルの作成

テーマフォルダ直下に【front-page.php】のファイル名で新規ファイルを作成します。

中身は一旦HTMLコーディングファイルのindex.htmlをそのままコピペで全置き換えします。

3-2. WordPressテンプレートの基本ルールを設定

WordPressで独自テンプレートを作る場合、WordPressルールとして下記3点は必ず設定する必要があります。

headタグの最後(=head閉じタグ直前)に下記コードを追加
bodyタグの最後(=body閉じタグ直前)に下記コードを追加
titleタグは削除
titleタグは管理画面での登録内容からWordPressが自動で設定するため、テンプレートファイルには記述しません

追加したコードはそれぞれ下記のようになります。

3-3. header内アセットパスの変更

WordPressではCSSやJSのパスが絶対パスまたは相対パスの記述では読み込みできないため、下記のように書き換える必要があります。

具体的には下記部分を記載のように書き換えます。

3-4. 画像パスの変更

画像についても3-3と同様に全て書き換えます。

決まったコードの置き換え箇所が多数ある場合は一括置換が便利です。

  1. VS Codeで置換したいファイルを開く
  2. Command(WinではCtrl) + Fで検索欄を開く
  3. 入力欄左側の[>]を押して、置換入力欄を表示
  4. それぞれの入力欄に以下を入力
    検索する文字列(上の段)

    置換後の文字列(下の段)

  5. [すべて置換]ボタンを押して完了

4. ヘッダー/フッターの切り離し

全ページ共通のヘッダー/フッターを切り離して各ページの【共通パーツ】として読み込ませる形にします。これにより各テンプレートで毎回同じコードを書く必要がなくなり、メンテナンス性も向上します。

4-1. ヘッダーの切り離し

header.phpを新規作成してテーマフォルダ直下に保存します。
ファイルの中身はfront-page.phpから下記部分(コード先頭から共通ヘッダー終わりまで)をコピペ保存します。

header.php

4-2. フッターの切り離し

header.phpと同様にfooter.phpをテーマフォルダ直下に保存します。
front-page.phpから下記部分(共通フッターはじまりからコード末尾)をコピペ保存します。

footer.php

4-3. front-page.phpの変更

切り離したヘッダー/フッターをfront-page.phpで読み込むために関数を追記します。

ヘッダー読み込み関数
フッター読み込み関数

これらを反映したfront-page.phpは下記のようになります。

5. 店舗案内ページ(固定ページ)

店舗案内ページはWordPress上で固定ページを追加した後、page-(スラッグ名).phpのファイル名でテンプレートを作成します。

5-1. WordPress管理画面上で固定ページを追加

固定ページ > 新規固定ページを追加 から下記内容でページを追加します。

タイトル
店舗案内
本文
なし(何も書かない)
リンク
about

5-2. テンプレートファイルを作成

テーマフォルダ直下にpage-about.phpのファイル名でテンプレートファイルを作成します。

前述の固定ページ追加のステップでパーマリンクとして設定した値をスラッグと言います。この値はページを識別する値として使われます。

今回テンプレートファイル名をpage-about.phpとして作成していますが、page-に続く名前にスラッグ名の【about】を入れたファイル名にすることで【page-about.php = 店舗案内(about)ページ用のテンプレート】として認識されるようになります。

5-3. page-about.phpにコード記述

中のコードにはHTMLコーディングしたabout.htmlのmainタグ内コードをコピペして、front-page.phpと同様に下記修正を行います。

  • 先頭と末尾にget_header/get_footerの記述
  • 画像パスの書き換え

6. お問い合わせページ

お問い合わせページは店舗案内ページと同様に固定ページを追加した後、page-(スラッグ名).phpのファイル名でテンプレートを作成します。
またフォーム部分はContact Formプラグインを使って作成します。

6-1. WordPress管理画面上で固定ページを追加、テンプレートファイル作成

店舗案内ページ作成と同様の手順でコード反映まで行います。

タイトル
お問い合わせ
本文
なし(何も書かない)
パーマリンク
contact
固定ページファイル名
page-contact.php
コード反映元コーディングファイル名
contact.html

6-2. フォームタグ部分の動的反映

フォーム部分は特殊なコードが必要なため、HTMLコーディングファイルのformタグ部分そのままでは動かず、 動作させるにはWordPressにて【動くフォームのコード】を生成して反映させる必要があります。
WordPressが生成するフォームタグを反映させるには、formタグ部分を下記に示す特殊なコードに置き換えます。

具体的な手順は、page-contact.phpの内容を書き換えます。
formタグ部分を丸ごと削除して、下記コードに置き換えて更新します。

スラッグ情報により読み込む内容が明確な場合、【メインループ】と呼ばれる機能により何を読み込むかを書かなくてもWordPressが自動で判断しそのデータを読み込むことができます。

ページURL: /about = スラッグ名:about
→ 対応する固定ページ【店舗情報】に記載の内容を読み込み
ページURL: /contact = スラッグ名:contact
→ 対応する固定ページ【お問い合わせ】に記載の内容を読み込み
その具体的な読み込みアプローチを行っているのが前述のコードになります。
詳しくは下記ページを参考にしてください。

参考: 【初心者向け】WordPressのメインループとサブループの違い。記事を繰り返し表示する方法。 > メインループの記述方法

6-3. Contact Formプラグインの追加と設定

Contact Formプラグインのインストールとコンテンツ作成

  1. プラグイン > 新規追加 から【Contact Form 7】を検索し、インストール&有効化します。

  2. お問い合わせ > 新規追加からフォームを作成します。

  3. タイトルを【お問い合わせ】と入力、コンテンツにはcontact.htmlのformタグ内のコードを一旦コピペで反映します。

Contact Formのタグ置き換え

Contact Formでは、通常のinputタグ等で記載したフォームは動作しません。これを動作させるにはContact Form側で用意した【Contact Formタグ】に置き換える必要があります。

  1. Contact Formタグに置き換えたい場所を選択(①)して、フォームタグ生成ボタン(②)をクリックします。

  2. 項目に下記情報を入力して【タグを挿入】をクリックします。

    項目タイプ
    【必須項目】にチェックを入れる
    名前
    name属性の値(ここではuserを入れる)
    ID属性
    userを入れる
  3. 選択領域の後ろにフォームタグが挿入されます。

  4. 元々のinputタグを削除してContact Formタグのみにします。

    結果的に元のタグは下記のように置き換えられます。

  5. 同様の手順で下記の項目もすべてContact Formタグに置き換えます。
    フォーム生成タグは項目に合わせて適切なものを選択してください。(メールアドレス項目は【メールアドレス】ボタンを選択、など)

    • 電話番号
    • メールアドレス
    • お問い合わせ内容
    • 送信ボタン
  6. コードの置き換えがすべて完了したら保存します。

コードの変換はChatGPTなどのAIツールを使うと簡単に変換できます。

プロンプト:
下記のHTMLコードをcontact form7で使用できるコードに変換してください。
-----------
(formここから〜formここまでの間のコード)

作成したフォームの設置

前の手順で作成したフォームを固定ページに設置します。

  1. お問い合わせ一覧ページにて、作成したフォームの【ショートコード】をコピーします。

  2. 固定ページ一覧から【お問い合わせ】を開き、の本文コンテンツに、コピーしたショートコードを貼り付けます。
    (「ショートコード」でパーツ検索して、パーツ内にショートコードを貼り付けます。)

6-4. お問い合わせ受付時の挙動設定

お問い合わせフォームの送信ボタンを押した際の挙動を設定します。

メール設定

お問い合わせフォームの送信ボタンを押した際に、管理者にメールが届くように設定します。

左メニューから、お問い合わせ > お問い合わせ を開き、【メール】タブを選択します。

内容を変更します。ここでは通常のテキスト記述に加えて【メールタグ】が使用できます。

【メールタグ】は、主にお問い合わせフォームに入力された内容をメールに反映させるための記述です。
メール設定内に記載されている[your-name] [your-email]といった[]で囲まれた部分がメールタグになります。
メールタグを設定した箇所はタグがそのままメールに記載されるのではなく、設定内容や入力内容に応じた内容に変換されてメールに記載されます。

使えるメールタグは【あらかじめ機能として用意されているタグ】と【フォームタブで設定した項目のタグ】が使えます。

あらかじめ機能として用意されているタグ(一例)

[_site_admin_email]: WordPress基本設定で設定されているメールアドレス

[site_title]: WordPress基本設定で設定されているサイト名

[_site_url]: WordPress基本設定で設定されているサイトURL

フォームタブで設定した項目のタグ
メールタブ内の下記に記載されているタグが使えます。(ここの内容はフォームタブで使用した入力タグに応じて変わります)

まず【送信先】【送信元】【題名】【追加ヘッダー】の内容を変更します。

送信先

変更なし([_site_admin_email]のまま)

送られるメールの宛先です。初期で設定されている[_site_admin_email]はWordPress基本設定で設定されているメールアドレスになります。

送信元

変更なし([site_title] のまま)

メールの差出人です。wordpress@moen.localの部分が差出人アドレスになるので、必要であればここを変更します。

題名

お問い合わせを受け付けましたに変更

追加ヘッダー

初期値のReply-To: [your-email]を消して空にします。

フォームで設定した項目がメールに記載されるよう、メール本文を下記のように修正します。

ウェブサイト ([_site_title] [_site_url]) からお問い合わせを受け付けました。

お名前: [user]
電話番号: [tel]
メールアドレス: [email]

お問い合わせ内容:
[message]

変更を保存して確定して完了です。

ここまでの設定は管理者宛に送るメールのみですが、フォーム入力してもらったユーザーに確認メールを送ることもできます。
その他詳しい設定は下記ページを参考にして下さい。

【完全版】Contact Form 7の基本と使い方まとめ

コードの変換はChatGPTなどのAIツールを使うと簡単に変換できます。

プロンプト:
下記のcontact form7用コードから、お問い合わせを受け付けるメールの文面を生成してください。
-----------
(Contact Form用のフォームコード)

6-6. プレビュー確認

お問い合わせページ(http://moen.local/contact)を開き、ページの表示とお問い合わせフォームの動作をを確認します。

Localの環境下では、このフォームからお問い合わせを行っても宛先をどこに設定した場合でも実際のメールは飛びません。

Localでは下記のメールアプリにて受信する仕組みになっており、下記手順でメール内容が確認できます。

  1. Localの設定画面上で【Tools】タブを選択
  2. Mailhogの画面が開いたら左メニューから【Inbox】を選択
  3. 送信したお問い合わせフォームに対応するメールが表示されるので、そのメールを選択

7. お知らせ一覧ページ

下記のような記事の一覧ページの作成手順です。

7-1. Custom Post Type UIプラグインのインストールと投稿タイプ追加

投稿型ページを作る場合は【カスタム投稿タイプ】と言われる「投稿ページ」を作成する機能を利用します。

手順はいろいろありますが【Custom Post Type UI】というプラグインを使うことで簡単に設定できます。

  1. 管理画面から【プラグイン > 新規追加】を選択し、「Custom Post Type UI」をキーワード検索してプラグインを追加します。
    追加したらそのまま【有効化】ボタンをクリックして有効化します。

  2. 有効化すると左メニューに【CPT UI】のメニューが追加されます。その項目にマウスオンして、【投稿タイプの追加と編集】をクリックして進みます。

  3. 下記の内容でカスタム投稿タイプ情報を入力します。

    投稿タイプスラッグ
    news
    複数形のラベル
    お知らせ
    単数形のラベル
    お知らせ
  4. 【投稿タイプを追加】をクリックせずにそのまま下までスクロールして、以下2箇所を変更します。

    アーカイブあり
    False → True
    サポート
    タイトル / エディター / アイキャッチ画像 / 抜粋 の4つをを選択

    :

  5. ページ下部の【投稿タイプを追加】ボタンをクリックして登録します。

  6. 左側メニューに【お知らせ】項目が追加されていればOK。

  7. 左メニューから【設定 > パーマリンク】を開き、何も変更せずそのまま【変更を保存】をクリックして完了。

7-2. テンプレートファイルの作成(archive-news.php)

記事一覧ページはarchive-xxxx.phpの名前でテンプレートファイルを作成します。(xxxxはスラッグ名)
お知らせ記事のスラッグ名はnewsで設定しているので【archive-news.php】の名前で新規作成します。

テンプレートファイルの中身は一旦コーディングファイルのnews-list.htmlをコピペして、前述の店舗案内ページなどと同様の手順で下記を編集します。

  • 先頭と末尾にget_header/get_footerの記述
  • 画像パスの書き換え

7-3. テンプレートファイルのコード修正

テンプレートファイル内の下記部分を以下のように置き換えます。

繰り返しコンテンツの前後に下記コードを記述することで、各記事の情報を一覧形式で表示できます。
この表記をWordPressでは【メインループ】といいます。

繰り返しコンテンツ内は下記のコードを書くことで指定の内容を出力することができます。

記事の日付
記事のタイトル
記事の概要
記事ページへのリンクURL

7-4. ページネーションの設定

ページネーションとは、ページを切り替えるためのページ番号や【前へ】【次へ】といったリンクです。

コード内の下記部分をページネーション用コードに置き換えます。

7-5. コンテンツの反映確認

管理画面から【お知らせ】コンテンツを作成して、一覧に反映されることを確認します。

8. お知らせ記事ページ

8-1. テンプレートファイルの作成

記事個別ページのテンプレートファイルはsingle-xxxx.phpになります。
お知らせ一覧ページと同様の手順でテンプレートファイルを作成します。

ファイル名
single-news.php
コンテンツのコピー元ファイル名
news-single.html

記事一覧ページと同様に下記設定をします。

  • 先頭と末尾にget_header/get_footerの記述
  • 画像パスの書き換え

8-2. テンプレートファイルのコード修正

テンプレートファイル内の下記部分を以下のように置き換えます。

記事個別ページでも一覧ページのようにメインループの表記が必要です。
個別記事ページについては実際繰り返すような性質のコンテンツは存在しませんが、WordPressのルールとして同じ表記で書くようになっています。

記事コンテンツ内は下記のコードが利用できます。

記事の日付
記事のタイトル
記事の本文

8-3. ページ確認

管理画面から記事を投稿して、お知らせページに内容が反映されていることを確認します。

9. TOPページに最新NEWSを表示

投稿ページのコンテンツそのページ内だけでなく、TOPページや固定ページ内にも表示させることができます。
このような別ページのコンテンツを差し込み挿入するかたちを、6-3で記載した【メインループ】に対して【サブループ】と言います。

参考: 【初心者向け】WordPressのメインループとサブループの違い。記事を繰り返し表示する方法。 > サブループとは?

TOPページのテンプレートファイル(front-page.php)内の下記部分を以下のように置き換えます。

メインループでは何の情報を読み込むかを記載することなくWordPressが自動で判断して読み込んでくれていましたが、サブループの場合は何の情報を取得したいかを明記する必要があります。

お知らせ記事一覧と同様に下記のようなループで表記します。(※通常の記事一覧ページ用コードと若干表記が違うので注意!)

記事一覧ページと同様に下記コードを利用できます。

記事の日付
記事のタイトル
記事の概要
記事ページへのリンクURL
コードの変換はChatGPTなどのAIツールを使うと簡単に変換できます。

プロンプト:
WordPressでTOPページの下記のnewsセクションに記事を反映できるようコードを書き換えてください。
なおpost_typeはnews、表示件数は3件とします。
-----------
(HTMLコード)

10. リンクURLの修正

各ページ内やグローバルメニュー内でリンクされているURLを修正します。

ページ名 ファイル名 WordPress化したときのURL
TOPページ ./index.html /
店舗案内ページ ./about.html /about
お問い合わせページ ./contact.html /contact
お知らせ一覧ページ ./news-list.html /news
お知らせ記事ページ ./news-detail.html /news/(個別ページ名)

※ ここでも前述の【一括置換】を使うと便利です。

11. ページ全体の動作確認

サイトを表示して、各ページの表示や動作に問題が無いか確認します。
OKであればこれでWordPress化の作業は終了です。お疲れさまでした!