
初めてのテーマ作成
テーマに必要な最低限のテンプレートファイルを作成しましょう。テーマの構築に必要なテンプレートファイルを用意して1つのフォルダーにまとめます。まずは、最小限に必要なファイルだけを用意して、少しずつ追加していきましょう。
「mytheme」というフォルダーを作成し、その中に以下のデータを収録しましょう。
- index.php
- header.php
- page.php(固定ページ用)
- category.php(投稿の一覧)
- single.php(投稿ページ用)
- sidebar.php(サイドバーを出力する場合)
- footer.php
- functions.php(各種設定ファイル)
- style.css
- screenshot.jpg(テーマのサムネイル画像/600×450ピクセルで作成)
スタイルシートの準備
スタイルシートの筆頭に、以下の情報を記載します。スタイルシートには、文字のエンコードを指定するために『@charset “utf-8”;』を冒頭に記入します。その後、コメントアウト(/*~*/)の中にテーマの概要を記述していきます。特に、『theme Name:』の記述がないと、テーマとして認められません。
@charset "UTF-8"; /* Theme Name: MY THEME Author: MY NAME Description: Original theme. Version: 1.0 */
そのほかにも、以下のような情報の種類もあります。CSSは、UTF-8で保存します。
@charset "UTF-8";
/*
Theme Name: テーマ名
Theme URI: テーマURI — テーマの配布ページなど
Description: テーマの解説
Author: 作者の名前
Author URI: 作者のURI
Version: バージョン
Tags: テーマに関するタグ(キーワード)をカンマ区切りで記述(オプション)
License: ライセンス
License URI: ライセンスURI
コメント (オプション)
*/
【注意点】
通常のhtmlでのパスでは、css/やimages/などでしたが、ワードプレスの場合のパスは、以下のようになります。
で表します。例えば、画像の場合は、
と記述します。リセットCSSや、Font AwesomeのCDNは、従来通りの記述で読み込まれます。
functions.php
wordpressの各種設定や機能の連携を行うためのファイルです。functions.phpを記述する際は、一番最初にphpの開始タグである』は、基本的に全ての関数を記載した後に記述するか省略します。WordPressのfunctions.phpでは、最後のPHPの閉じタグ(?>)は省略することを推奨しているようです。
header.phpについて
ヘッダー部分は、ページの上部、共通部分のパーツとなります。
style.cssを読み込むためには下記のディレクトリで、PHPのコードで呼び出します。
<?phpechoget_template_directory_uri();?>下記は、Wordpressが予め用意しているヘッダーを読み込むための1行です。
<?php wp_head();?>WordPress5.2より追加されました。bodyタグのすぐ後にソースコードなどが挿入できます。
<?php wp_body_open(); ?>>
上記のように、記述すると
.headerimg {
height: 250px;
background-position: center;
}
というクラスセレクタが有効になります。
条件分岐タグ
<?php if( is_front_page() && is_home() ): ?>
is_front_page()などの箇所を条件分岐タグと呼びます。他にも条件分岐タグには主に以下のようなものがあるので覚えておくと便利です。
is_single() ・・・個別投稿ページ用
is_page() ・・・固定ページ用
is_category() ・・・カテゴリーページ用
is_search() ・・・検索結果ページ用
特に固定ページや投稿ページなどは投稿IDで分岐させることも可能です。投稿記事のID番号をふることも可能です。
post.php?post=11450&action=edit
となっていればそれはID11450 ですので、is_single('11450') という感じで利用します。
index.php
下記コードに、クラスセレクタを導入しレイアウトを整えます。
Welcome WordPress!
記事の有無を表示するループコード
<?php if(have_posts()): ?>
<?php while (have_posts()):the_post(); ?>
<!—— 情報取得のテンプレートタグを記述 ——>
<?php endwhile; ?>
<?php else: ?>
投稿記事はありません
<?php endif; ?>
●大きさがまちまちのサムネイル画像であっても、大きさは揃えるほうがよいでしょう。
部分のスタイルシートの参考例
.news-area {
flex-wrap: wrap;
margin: 0;
padding: 0;
display: flex;
justify-content: space-between;
}
.news-area li {
list-style: none;
}
.news-area .thumbnail {
overflow: hidden;
width: 300px;
height: 200px;
position: relative;
}
.news-area .thumbnail img {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: auto;
}
footer.php
固定ページ・投稿ページ(page.php/single.php)
category.php(カテゴリーページ/投稿の一覧)
投稿したすべての過去記事が表示される一覧ページ
cat_name;?>