前回の続きです。
それではコーディングの作業にとりかかります。
どこから手をつけて作業して行ったのかを、あまり覚えてないので
実際にやった順番とは異なることになるかもしれませんが、ご容赦ください(^_^;)
style.css
まずは、style.css。
こちらによると、最低限テーマ名を冒頭にコメントで書いておく必要があるようです。
これによってテーマのファイルとして認識される模様です。
/*
Theme Name : テーマ名
*/
ちなみに、
標準テーマの一つである「Twenty Twenty-One」の場合は↓こんな感じでした。
必要に応じて、Author、Version、License等を書くことになるようですね。
ヘッダーなコメントのメタ情報にはこんなのがあるようです。
/*
Theme Name: Twenty Twenty-One
Theme URI: https://wordpress.org/themes/twentytwentyone/
Author: the WordPress team
Author URI: https://wordpress.org/
Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the block editor your best brush. With new block patterns, which allow you to create a beautiful layout in a matter of seconds, this theme’s soft colors and eye-catching — yet timeless — design will let your work shine. Take it for a spin! See how Twenty Twenty-One elevates your portfolio, business website, or personal blog.
Requires at least: 5.3
Tested up to: 5.8
Requires PHP: 5.6
Version: 1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyone
Tags: one-column, accessibility-ready, custom-colors, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready
Twenty Twenty-One WordPress Theme, (C) 2020 WordPress.org
Twenty Twenty-One is distributed under the terms of the GNU GPL.
*/
index.php
続いて必須な、index.php。
当サイトのようなブログの場合は、基本的には投稿一覧を担当させるのが良さそうです。
「Twenty Twenty-One」の場合もそんな感じになっていました。
で、↓こんな感じになりました。
個々の機能は部品な感じで扱った方が良さそうなので、get_template_part() で別途読み込むようにしました。
<?php
get_header();
if ( have_posts() ) {
echo '<div class="post-list">';
while ( have_posts() ) {
the_post();
get_template_part( 'parts/content-excerpt' );
}
echo '</div>';
get_template_part( 'parts/posts-pagination' );
} else {
get_template_part( 'parts/content-none' );
}
get_footer();
ざっくり解説してみます。
まずヘッダー ➔ 投稿などがあれば必要なだけループして出力 ➔ 終わりにフッター。
該当する投稿などがなければ、parts/content-none.php を呼び出す。
割と分かりやすいと思います。
テンプレートの部品ファイルは parts というフォルダを作って、そこに置くようにしました。
一覧、アーカイブ、検索などのそれぞれの状況において、
ループで対象となる内容は WordPress の方で適切に選んでくれる仕組みのようです。
get_header()、have_posts()、the_post()、get_footer() を使って、
以下のようにやるのが定番のパターンのようですね。
<?php
get_header();
while ( have_posts() ) {
the_post();
︙
}
get_footer();
parts/content-none.php については、
該当する投稿が無かったり、検索で見つからなかった場合に呼び出されます。
つまり、HTMLステータスコードの404的な機能ということで良いかと思いますが、
現時点ではまだアーカイブや検索などを実装していないので、作業は後回しにします。
テーマの名前
おっと、そういえばテーマ名を決めていませんでしたね。
ん~色々と考えてみましたが・・・「rarefreq」に決定!
意味合いとしては、rare+ frequency で「まれによくある」
間違いやバグはまれにあるということになるはずなんだけど・・・よくあったりするので(^_^;)
モノを作るというのは、さだめし矛盾を内包してたりするものなのです。
次回は、parts/content-excerpt.php や parts/posts-pagination.php のコーディングを行います。
つまり、内容の抜粋表示やページ割についてやってみます。