リオラボ
icon

【サンプルテーマ配布】WordPress自作テーマの作り方完全版【Bootstrap活用】

この記事ではWordPress自作テーマの作り方完全版ということで、自作テーマの基本から実際の構築方法について詳しく解説しています。また、サンプルテーマを配布しているのでそれをベースに自分だけのテーマ作りに挑戦してみてください。
私はHTML、CSS、PHP全く分からない時から自作テーマを試行錯誤してきたので、WordPressだけでなくHTML、CSS、PHP自体の初心者であっても分かりやすいように説明しています。サンプルテーマを使えば、とりあえずコピペでも自作テーマが完成します。

ここではBootstrapを使ってテーマ構築していくので、HTML、CSSがまだよく分からない場合でも取り組みやすくなっています。また、Bootstrapを使うことで自動的にレスポンシブデザイン対応となっています。Bootstrapの基本は以下の記事で説明していますが、とにかく簡潔にコードが書けるのでこれから紹介するWordPressの各ファイルの中身が分かりやすくなっています。最小限のコードしか書いていません。

Bootstrapで最低限のデザインをしているため、好みでカスタマイズしていってください。

Bootstrapの使い方&自作テーマで最低限必要な知識【WordPress】

Bootstrapの使い方&自作テーマで最低限必要な知識【WordPress】

Posted on 9月 12, 2024 | Category: WordPress

Bootstrapは、あらかじめ用意されたクラス名を利用するだけで、簡単にレイアウトやデザインを作成できる便利なフレームワークです。特に複雑なコードを書くこ…


サンプルテーマと言ってもヘッダー、フッターの表示であったりフロントページでの記事一覧とサイドバーの作成、また検索結果ページ、アーカイブページ、投稿ページなど基本的な構造は全て完成されています。つまり、最低限ではありますが記事を投稿してそれらが表示されたり、関連記事が表示される、検索フォームで検索をするなどができるようになっています。好みのデザインに修正して、機能を追加していけば本格的なテーマとなります。

またPHPが分からない場合でも、どのコードがどのデータを出力するのかを説明しているので、それらの要素にクラス名を付ければある程度簡単にデザインができてしまいます。

サンプルテーマの機能

 

サンプルテーマは以下のような機能、ページが備わっています。

・必要なファイル一式
・Bootstrapで最低限のデザイン実施
・レスポンシブ対応(Bootstrap)
・ヘッダー、フッターの表示
・フロントページにはヒーローセクションと投稿記事一覧、サイドバーを表示
・投稿ページには投稿内容と関連記事を表示
・お問合せページの作成
・検索結果ページ、アーカイブページの作成

WordPressテーマを自作する際、必要なファイルが多くて大変なイメージはありますが、最低限のポイントを押さえながらいけばとりあえず完成まで辿り着きます。

簡単に説明すると
・functions.php:自分で機能を追加したいときに使うファイル。最初は基本のコードだけで大丈夫なので、あまり難しく考えなくてもOK
・home.php:フロントページの表示。投稿一覧を表示するためのPHPコードがある以外は静的なHTMLサイトと同じようなもの
・header.php、footer.php:各ページのヘッダーとフッターを表示するファイル。これも静的なHTMLサイトと同じように扱えます。

まずはこれらのファイルを作成すれば、テーマのベースが完成します。後のファイル(search.phpやarchive.phpなど)はhome.phpと似た部分が多いので、全てを一から学ぶ必要はありません。

開発環境を用意

開発環境はlocal

・WordPress自作テーマのテスト環境はlocalで実施するのが手軽です。
・localはWordPress開発環境ツールであり、難しい設定なくすぐに自作テーマの開発環境が作れます。ローカル環境での実施なのでドメインやサーバーは不要。もしすでにワードプレスブログを持っている場合でも、ローカルでテストすれば本番環境に影響を与えません。localではスマホで表示を確認することもできるのがメリット。
・ダウンロード先:https://localwp.com/

localの使い方

・File – add new siteから Create a new siteを選ぶ
・好きなドメイン名をつける
・ユーザー名、パスワード名を設定
・細かい設定は不要

これだけですぐにWordPressが利用できます。Open siteでサイトを表示、WP Adminで管理画面へログイン。Live LinkをEnableにするとスマホなどの別端末でブログを表示できます。

Go to site folderに自作テーマのファイルを作成していきます。

自作テーマに必要なファイル一覧

ここでは、WordPress自作テーマを実用的なものとするために、最低限必要なファイルを一覧にしています。つまりトップページが表示でき、ブログ記事投稿ができ、検索機能が使え、カテゴリやタグページが表示できるといったところです。これがあればサイト、ブログとして機能します。あとは固定ページやコメント、404ページなどのファイルもありますが、必要に応じて後で追加すれば良いでしょう。

functions.php
テーマの機能を追加するためのファイル。例えばどのページでcssを読み込ませるかだったり、投稿記事にオリジナルの目次機能を追加させるなど。

index.php
テーマの基本的なテンプレートファイル。WordPressのデフォルトテンプレートとして機能し、他のテンプレートファイルがない場合に表示されます。今回はファイルは作りますが特に編集はしません。

header.php
ページの head部分とheader部分を含むテンプレートファイル。サイト全体のヘッダーを定義します。

footer.php
ページのfooter部分を含むテンプレートファイル。サイト全体のフッターを定義します。

home.php
home.php は、ブログのホームページや投稿一覧ページをカスタマイズするためのテンプレートファイルです。home.phpをフロントページに設定します。このファイルがブログを表示した際のトップページになるということです。

style.css
テーマのスタイルシート。テーマの基本的なデザインやレイアウトを定義します。テーマのメタデータ(名前、バージョン、著者など)もここに記述。

searchform.php
searchform.phpはWordPressテーマで検索フォームをカスタマイズするためのファイルです。数行のコードを追加するくらいです。

search.php
検索結果ページのテンプレートファイル。検索結果に一致した記事一覧が表示されます。

archive.php
投稿のアーカイブページ(カテゴリー、タグ、著者アーカイブなど)のテンプレートファイル。

single.php
投稿ページのテンプレートファイルで個別の投稿が表示される際のレイアウトを定義します。記事を投稿すると、このファイルで定義した内容が表示されるということです。

contact.php
contact.phpには問い合わせフォームを設置します。プラグインを使うので設定は容易です。

これらのファイル内に適切な記述をすることで、WordPressが初めて機能します。例えばhome.phpには投稿記事一覧が出力されるコード、header.phpにはヘッダーナビゲーションを設置、single.phpには投稿した内容(アイキャッチ、タイトル、内容)などが出力されるようにする、といったところです。

自作テーマのサンプル、ベースとなるテンプレートを配布

こちらが上記で説明した自作テーマに必要なファイル一覧を含んだベースとなるテンプレートです。RL-Starterテーマと名前を付けています。自身で一から作成してもいいですし、こちらをダウンロードしてとりあえず練習してみてもOKです。

RL-Starterをダウンロード

ファイルの設置方法

・LocalのGo to folderをクリックするとapp,conf,logsを含むフォルダが表示
・app – public – wp-content – themes内にファイルを格納します。
・テンプレをダウンロードした場合は、そのファイルをそのままthemes内に格納してください。
・自身でファイルを作成する場合は、上記のフォルダ階層を参考に作成してください。

テーマをWordPressにアップロード

テーマファイルをthemesフォルダ内に設置できたら、そのテーマをWordPressに適用させます。localで作成したWordPressサイトの管理画面からテーマを開きます。
新しいテーマ→テーマのアップロード→ファイルを選択からインストールします。(ZIP 形式)

テーマが適用されたら各ファイルのカスタマイズをしていきます。テーマはすでに適用されているため、localのGo to site folderから各PHPファイルを修正することで即時変更した内容が反映されます。

テーマの使い方とデザイン変更方法

このテーマを使うことで、PHPコードがわからなくてもある程度自分でデザインを変更できるようになっています。以下にその方法を説明します。

例:投稿ページのタイトル

例えば、投稿ページに以下のPHPコードがあります

これは投稿のタイトルを表示するコードです。タイトルのデザインを変更したい場合は、このコードにクラスを追加して、CSSで装飾することができます。具体的には次のように変更します

上記の例では、タイトルをh1タグで囲み、custom-classというクラス名が付けました。このクラス名を使って、CSSでタイトルのスタイルを変更できます。

その他にも、投稿本文はphp the_content(); 、カテゴリはget_the_category()をechoするなど、書き方は決まっているのでそれらの要素に対してクラスをつけたりコンテナを作ったりすればデザインができるということです。

このようにして、当テンプレを利用して好みのデザインに変更ができます。デフォルトではbootstrapでデザインしているのでそのままbootstrapを活用してもいいですし、全てCSSでデザインしてもOKです。

各ファイルの解説

functions.php

テーマの機能を追加するためのファイル。ウィジェットの登録や、自身で何かの機能を追加したい場合に使います。RL-Starterテーマでは以下のようにcssの記述をしています。

enqueue_custom_styles 関数

この関数は、特定の条件に基づいて異なるCSSファイルを読み込むように設定しています。

テーマファイルを見るとわかるように、まずテーマ直下にstyle.cssがあります。これはどのページでも適用させたいスタイルシートです。そしてcssフォルダの中に3つのcssファイルがあります。例えばトップページにはhome.css、お問い合わせページであれば contact.cssのように、どのページにどのcssファイルを読み込ませるかといったことです。

上記のコードではifの条件文を使い、is_front_pageつまりトップページであればcssフォルダにあるhome.cssを適用、is_page_templateがcontact.phpの場合、contact.cssを適用。

そして全ページで style.css を読み込むようにもしています。また、filemtime 関数を使用して、スタイルシートが変更されたときにキャッシュが更新されるようにしています。

cssはテーマ直下のstyle.cssだけでもテーマとしては機能しますが、ページによって適用させるcssを変えたい場合、このような条件で管理するとスッキリします。よく分からない場合はとりあえずstyle.cssにだけ記述していっても問題ありません。

アイキャッチ画像の有効化

これはWordPressのテーマでアイキャッチ画像(投稿サムネイル)を有効にするためのものです。これにより記事投稿画面でアイキャッチを設定できるようになります。

テーマにタイトルタグサポートを追加

WordPressのテーマに「タイトルタグ」機能を追加するための関数です。この機能を有効にすることで、WordPressが自動的にtitleタグを管理し、ページのタイトルを適切に出力するようになります。これでページごとに最適なタイトルを自動的に生成してくれます。

ということで、RL-Starterテーマでは3つの機能を追加しています。このようにfunctions.phpには様々な機能を追加することができます。私が本番環境で使っている機能では、ブログカードのデザインカスタム、ウィジェットのデザインカスタム、投稿ページの目次追加などがあります。

functions.phpは基本的には下にコードを追加していけばいいのですが、functions用のフォルダを作り、関数や機能ごとにファイルを分割すると見た目がスッキリします。慣れたら実施してもいいと思います。

header.php

サイトのヘッダー部分です。header.phpに記述した内容が実際にページに表示されます。RL-Starterテーマでは簡単にヘッダーナビ、リンクを設置しています。

Bootstrapを使っているので、スマホ表示にするとレスポンシブデザインになっておりハンバーガーメニューが表示されています。このハンバーガーメニューをクリックするとサイドバーを表示したいところですが、この状態では機能していません。ボタンがあるだけです。

そういった機能が欲しい場合、以下の記事で解説しているので、コードをコピペして使ってください。いくつかのテンプレート集をまとめているので、好みのデザインを参考にしてください。

【テンプレ集】WordPressヘッダー作成方法&テンプレート集【自作テーマ/Bootstrap】

【テンプレ集】WordPressヘッダー作成方法&テンプレート集【自作テーマ/Bootstrap】

Posted on 9月 19, 2024 | Category: WordPress

この記事ではBootstrapを使ったヘッダーナビ(ナビゲーション)の作成方法と、サンプルとしてテンプレート集を紹介しています。 ヘッダーの構成は基本的にヘッ…


header.phpの記述内容を確認しましょう。

・!DOCTYPE html: HTML5のドキュメントタイプ宣言。
・html lang=”ja”: ドキュメントの言語を日本語に設定。
・head :タグ内で、ドキュメントのメタデータを定義。
・meta charset=”UTF-8″ /: ドキュメントの文字エンコーディングをUTF-8に設定。
・meta name=”viewport” content=”width=device-width, initial-scale=1.0″ /: レスポンシブデザインのための設定。画面幅に合わせてページのレイアウトを調整する。
・<?php wp_head(); ?>: WordPressのプラグインやテーマが必要とする追加のヘッダー情報を挿入するための関数。
・BootstrapのCSSを読み込むためのリンク。

上記はHTMLの基本的な設定です。

Bootstrapを使いナビゲーションメニューを表示しています。これに対しcssの設定はしていません。好みでデザインを変更できます。

ヘッダーにはbodyの閉じタグは記述しません。閉じタグは footer.php で完結します。

header.phpの記述は以上です。このheader.phpをhome.phpなどで呼び出すことにより、ページの上部にナビゲーションメニューなどが表示される仕組みです。Bootstrap活用するとこのようにcss記述なしで簡潔にコードが書けます。

footer.php

footer.php ファイルはページのフッター部分を構成しています。

これもBootstrapを使い、シンプルなフッターを作成しています。現状ではcssは使っていませんが、好みで変更できます。

最後にはwp_footer() 関数、BootstrapのJavaScript、そしてbody 部分を閉じ、htmlタグで HTMLドキュメント全体を閉じます。

home.php

サイトのメインとなるフロントページです。WordPressの使い方にもよりますが、ブログ的なデザインであれば投稿した記事を一覧にしたり、サイドバーにカテゴリや最近の投稿などを表示するかと思います。

RL-Starterテンプレではヒーローセクション、記事投稿一覧、サイドバー部分を作成しています。ヒーローセクションはheader.phpに記述してもいいのですが、私の場合はトップページだけに表示したかったのでhome.php側に書いています。

ちなみにhome.phpの記述内容と、後述するsearch.php、archive.phpの記述内容はとても似ています。home.phpが理解できれば他は同じようなものなので簡単です。

home.phpの記述を見ていきます。

1. ヘッダーの呼び出し

get_header() 関数は、テーマの header.php ファイルを呼び出し、HTMLのhead部分やナビゲーションバーを表示します。

2. ヒーローセクション

Bootstrapを利用して簡単なヒーローセクションを作成しています。ヒーローセクションは、ウェブサイトのトップに表示される大きなビジュアル要素のことです。要素の高さや透明度はインラインでスタイル調整していますすが、基本的にはBootstrapだけでデザインされています。
ヒーローセクションは好みで変更してください。

3.メインコンテンツ部分の作成

ヒーロセクションの下には投稿記事一覧を表示します。左側に記事一覧、右側にサイドバーを表示するためBootstrapのグリッドシステムを使います。

Bootstrapのグリッドシステムでは、画面を12等分とし、上記例では左側に8つの幅(約67%)、右側に4つの幅(約33%)を振り分けています。

詳しくは以下の記事を参照ください。

Bootstrapの使い方&自作テーマで最低限必要な知識【WordPress】

Bootstrapの使い方&自作テーマで最低限必要な知識【WordPress】

Posted on 9月 12, 2024 | Category: WordPress

Bootstrapは、あらかじめ用意されたクラス名を利用するだけで、簡単にレイアウトやデザインを作成できる便利なフレームワークです。特に複雑なコードを書くこ…


4. 記事一覧の表示

 

投稿した記事を出力するコードです。ループを使うことで投稿一覧を取得しています。
そのループの中で、the_permalinkでリンクの取得、the_post_thumbnailでアイキャッチの取得、the_titleはタイトル、the_excerptは記事の抜粋、get_the_dateで投稿日を取得すると覚えればOKです。

・while (have_posts()) : the_post();: 投稿をループで表示
・the_permalink(): 投稿のパーマリンクを取得してリンクを作成。
・the_post_thumbnail(): 投稿のサムネイル画像を表示。画像がない場合は、代替画像を表示。
・the_title:タイトルを表示
・the_excerpt:記事の抜粋を表示
・get_the_date:投稿日を取得

上記コードでは、Bootstrapのカード形式を使って見た目を整えています。一部インラインスタイルはしていますが、基本的にはBootstrapだけでデザインしています。
phpで出力したタイトルや抜粋、アイキャッチなどに対し、Bootstapでデザインしてもいいですし、cssでオリジナルのデザインにしてもOKです。

 

また、記事一覧に対しページネーション(ページ送り)を追加しています。

・the_posts_pagination():WordPressの標準関数で、投稿一覧ページにページネーションを表示。array()で渡されるパラメーターにより、ページネーションの動作や表示内容をカスタマイズできます。
・’mid_size’ => 2:現在のページ番号の前後に表示するページ番号の数を指定します。この場合、現在のページの前後に2つのページ番号が表示
・’prev_text’ => __(‘« Previous’, ‘textdomain’):「前へ」ボタンのテキストを設定。&laquo;は「«」(左向きのダブルアングル引用符)を表し、__(‘…’, ‘textdomain’)で国際化対応のテキストにしています。
・’next_text’ => __(‘Next »’, ‘textdomain’):「次へ」ボタンのテキストを設定します。&raquo;は「»」(右向きのダブルアングル引用符)を表します。

Bootstrapのd-flex justify-content-centerでページネーションを中央揃えにしています。

今回ローカルで作成したサイトには初めは1記事しかないため、ページネーション部分は表示されていないはずです。試しに何記事か投稿してみることでページネーションが確認できるようになります。
なお、1 ページあたりの表示数は、WordPress管理画面→設定→表示設定→「1ページに表示する最大投稿数」から変更できます。

5. サイドバーの表示

3.メインコンテンツ部分の作成で説明したように、サイドバーを表示する枠を作っています。現状ではスマホ表示と同様何も表示はなく、枠だけが設定されています(検索フォームだけは設置)。サイドバーの登録、表示設定に関しては別途解説予定です。ここではサイドバーの範囲が分かりやすいように背景色を設定しています。

6. フッターの呼び出し

get_footer() 関数は、テーマの footer.php ファイルを呼び出し、ページのフッター部分を表示します。

これでフロントページの完成です。

index.php

index.phpはWordPressテーマにおける「最終的なフォールバック」テンプレートです。以下のコードはシンプルな例です:

index.phpの役割と使い方

・基本テンプレート: index.phpはすべてのページに対応する基本的なテンプレートファイルです。特定のページ用のカスタムテンプレートが存在しない場合、index.phpが使用されるのです。

・他のテンプレートが優先: 今回home.phpを作成しているのでフロントページにはhome.phpの内容が表示されます。そのため、index.phpには上記のように簡易な記述だけで問題ないです。他にもシングル投稿、カテゴリーアーカイブ、検索結果ページなど作成しているため、基本的にindex.phpが使われることはありません。

・フォールバックとしての役割: index.phpはWordPressテーマにおける「最後の受け皿」テンプレートとなるため、特定のテンプレートファイルが見つからない場合に表示されることになります。そういった場合に備えて、index.phpに基本的なレイアウトやメッセージを記述しておくと安心です。

style.css

style.css は WordPress テーマのスタイルシートで、テーマの基本的なデザインやレイアウトを定義する重要なファイルです。ここにはテーマのメタデータも記述されておりテーマの名前、バージョン、著者などが含まれます。テーマ直下に style.css がないとテーマは機能しないので作成は必須です。

テーマメタデータの記述が必須

style.css ファイルには、テーマのメタデータを記述するコメントブロックが必須です。この情報がないとWordPress はテーマを正しく認識できず機能しません。Theme Nameだけは必須です。他の情報は「NA」つまり情報がないとしてもテーマとしては機能します。

最低限以下のようにしておけばOKです。

 

個別の CSS ファイルを作成することも可能

基本的に、style.cssにスタイルを全て記述していっても問題はありません。しかしテンプレートごとに専用の CSS ファイルを作成することも可能です。これによりスタイルの管理が容易になり、テーマの構造が整理されます。以下のようなディレクトリ構造で個別の CSS ファイルを作成することができます。style.css以外に関しては好きなフォルダ名、ファイル名で問題ないです。

ちなみに現在のテーマでは Bootstrapを使用しているため、style.cssには特別なにも書いていません。

searchform.php

searchform.phpはWordPressテーマで検索フォームをカスタマイズするためのファイルです。

・method=”get”: 検索クエリをURLのクエリパラメータとして送信します。
・action=”<?php echo esc_url(home_url(‘/’)); ?>”: フォーム送信先のURL(サイトのホームURL)

ここではFont Awesomeを使って検索アイコンを設置しています。好みで検索フォームのカスタマイズが可能です。

作成した検索フォームは<?php get_search_form(); ?>を使って、表示することができます。

search.php

search.phpは検索フォームで入力したキーワードに一致する記事を一覧で表示するページです。home.phpと記述内容は似ています。

検索結果の表示

・<?php if (have_posts()) : ?> 、 <?php while (have_posts()) : the_post(); ?>:これにより、検索結果があるかをチェックし、結果があればループで各投稿を表示します。
・WP_Queryはsearch.php内で自動的に処理されるため、検索キーワードを明示的に取得する必要はなく、home.phpとほぼ同じ記述で済みます。

検索結果がない時の表示

・<?php else : ?>: 検索結果がない場合に「No results found.」というメッセージを表示します。

デザインと構成

・ファイル全体の構成はhome.phpと似ています。アイキャッチ、タイトル、記事の抜粋などを表示するための記述は同じです。
・デザインもhome.php同様にカード形式で表示しています。デザインがhome.phpと同じでよければほぼ同じ記述で完成するので簡単です。

archive.php

archive.phpはWordPressのアーカイブページ(カテゴリ、タグ、著者、日付など)を表示するために使用されます。
例えばサイドバーなどにカテゴリ一覧を設置したとして、特定のカテゴリをクリックするとこのarchive.phpが適用されて、そのカテゴリに一致する投稿が一覧表示されます。

現在はカテゴリ一覧を設置していないので直接確認できませんが、例として、https://example.com/category/uncategorized/ というURLで「Uncategorized」カテゴリのアーカイブページが表示されます。

archive.phpの記述内容ですが、search.phpと全く同じです。search.phpと異なるデザインにしたい場合は変更しましょう。

single.php

single.php は、WordPress で個別の投稿(記事)を表示するために使用されるテンプレートファイルです。

ここでは、投稿内容の表示と関連記事の表示をしています。

投稿内容の表示

ここではタイトル、アイキャッチ、本文、カテゴリ、タグを表示します。

投稿の存在チェックとタイトル表示
・while (have_posts()) : the_post(); は、投稿が存在する場合にその投稿のデータをセットし、ループ内で処理します。
・<?php the_title(); ?>:the_title() 関数は、投稿のタイトルを表示します。

投稿サムネイル(アイキャッチ画像)の表示
・has_post_thumbnail() 関数は、投稿にサムネイルが設定されているかどうかを確認します。
・<?php the_post_thumbnail(‘large’, [‘class’ => ‘img-fluid’]); ?>:’large’ は画像サイズを指定し、[‘class’ => ‘img-fluid’] で、Bootstrapのクラスを付与し画像をレスポンシブにします。

投稿コンテンツの表示
・the_content() 関数は、投稿の本文を表示します。

カテゴリ、タグの表示
・get_the_category() 関数は、投稿に関連付けられたカテゴリの配列を取得します。
・get_the_tags() 関数は、投稿に関連付けられたタグの配列を取得します。
・カテゴリ、タグの間にはカンマを追加します(最後のカテゴリにはカンマを付けない)

他のコード同様、Bootstrapのクラスを使って表示しています。それぞれの要素にクラスを付けるなどしてデザインの変更ができます。

関連記事の表示

現在の記事に関連する他の記事を自動的に表示できます。

・if ($related_posts->have_posts()): で、取得した関連記事が存在するかをチェックします。
・while ($related_posts->have_posts()) : $related_posts->the_post(); で、関連記事のループを開始し、それぞれの投稿を表示します。
・各投稿にはタイトル、サムネイル画像、抜粋、投稿日を表示
・投稿がない場合は「関連記事はありません。」と表示
・’posts_per_page’ => 3 で、表示する関連記事の数を設定しています(この場合は3件)

関連記事の表示もBootstrapのカード形式を使用しています。

contact.php

ここではcontact という名前のカスタムテンプレートを作成し問い合わせフォームを表示しています。

これまではheader.php、home.php、single.phpといった標準テンプレートファイルを作ってきましたが、contact.phpはカスタムテンプレートです。
カスタムテンプレートとは独自のオリジナルページを作成するためのもので、ここではお問い合わせフォームを表示するためのページを作成しています。

カスタムテンプレートの作り方

カスタムテンプレートの作り方は以下の通りです。

・ファイルの先頭にTemplate Nameを記述(ここではcontact)
・WordPress管理画面→固定ページ→新規固定ページを追加→ページ属性のテンプレートにcontactを選択し公開する
・公開後、その固定ページのパーマリンクがカスタムテンプレートの URL になります(例: /contact)

テンプレートファイルには上記のようにテンプレート名を付けます。そして新規で固定ページを作り、テンプレートにそのテンプレート名を設定します。(固定ページのタイトルはわかりやすいものでなんでも良い)
固定ページで設定されるパーマリンクがそのカスタムテンプレートのurlとなるので/contact/のように編集してください。

contact.php の内容:

・get_header() と get_footer(): ヘッダーとフッターのテンプレートパーツを含めるための関数
・do_shortcode(): Contact Form 7 プラグインのショートコードを使って問い合わせフォームを表示

ここではプラグインであるContact Form 7を使って問い合わせフォームを作成しています。Contact Form 7をインストールし、生成されたショートコードを上記のコードと置き換えることで簡単に問い合わせフォームの利用が可能となります。このテーマのヘッダーとフッター部分には、この問い合わせページへのリンクを設置しています。固定ページを作成しプラグインを有効化、ショートコードを置き換えることで正常に表示されます。(パーマリンクは/contact)

問い合わせフォームのデザインに関してはCSSで調整してください。Contact Form 7 にはreCAPTCHAなどを設定した方がいいと思います。

必要なプラグインについて

自作テーマなので必要な機能はある程度自身で作成してもいいと思いますが、部分的にプラグインに頼ってしまってもいいかと思います。

・Contact Form 7:簡単に問い合わせフォームを作成・管理できるプラグイン。
・Classic Editor:WordPress の旧エディター(TinyMCE)を使用するためのプラグイン。
・Shortcoder:カスタムショートコードを作成し、ページや投稿で簡単に繰り返し利用できるプラグイン。
・Advanced Editor Tools:WordPress エディターの機能を強化するプラグイン。
・Advanced Custom Fields:カスタムフィールドを簡単に追加・管理し、投稿やページに柔軟なコンテンツを追加できるプラグイン。
・Site Kit by Google:Google の各種ツール(Analytics、Search Console、AdSense など)を WordPress に統合する公式プラグイン。

私の場合は上記のようなプラグインを活用しています。

まとめ

WordPress自作テーマの作り方完全版ということで解説しました。ベースとなるテーマを配布しているので、それを参考にしながら自作テーマを作成してみてください。サンプルテーマではBootstrapを使ってなるべくコード数を少なめに作成してみました。CSSを使ってオリジナルデザインを作成できるので色々と試してみてください。

これをベースに様々な機能やページを追加したり、理想のワードプレステーマを構築してもらえたらなと思います。