主に学習用、確認用に使えるようにと、WordPress ベーステーマを作成してみました。
基本的なテンプレートしか用意していないので、実用性は低いのですが、世の中のテーマを見て理解したり、ちょっとした修正コードを埋め込んで動作確認をしたいときに、こういったベーステーマがあると便利です。時間があるときに、ちょこちょこと機能追加をしていこうと考えています。
404.php
404.php はページが見つからない時に使われるテンプレートです。
<?php get_header(); ?>
<article>
<header">
<h1>404</h1>
</header>
<div class="entry-content">
<p>not found.</p>
<?php get_search_form(); ?>
</div><!-- .entry-content -->
</article>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
category.php
category.php はカテゴリページ用テンプレートです。
<?php get_header(); ?>
<?php if (have_posts()) {
while (have_posts()) {
the_post();
?>
<?php the_ID(); ?> … <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br />
<?php
} /* endwhile */
} /* endif */
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
footer.php
footer.php はフッター用のテンプレートです。get_footerで呼び出せます。
</div><!-- #content -->
<footer>
<div>
<a href="<?php echo esc_url('http://wordpress.org/'); ?>"><?php printf('Powered by WordPress'); ?></a>
</div>
</footer>
</div><!-- #page -->
<?php wp_footer(); ?>
</body>
</html>
functions.php
ここでは、functions.php にテーマでウィジット対応のサイドバーを使えるように記述をしています。
<?php
if ( function_exists('register_sidebar') ) {
register_sidebar();
}
?>
header.php
header.php は、ヘッダー部分用テンプレートで、get_headerで呼び出せます。
<!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <meta name="viewport" content="width=device-width" /> <title><?php wp_title( '|', true, 'right' ); bloginfo( 'name' ); ?></title> <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" /> <?php wp_head(); ?> </head> <body> <div id="page"> <header id="banner"> </header> <div id="content">
index.php
index.php はメインページ用のテンプレートです。
<?php get_header(); ?>
<!-- 記事一覧 -->
<section>
<h1>記事一覧</h1>
<?php while ( have_posts() ) { the_post(); ?>
<article>
<?php get_template_part( 'loop', 'simple' ); ?>
</article>
<?php } ?>
</section>
<!-- カテゴリ一覧 -->
<section>
<h1>カテゴリ一覧</h1>
<ul>
<?php wp_list_categories('orderby=name&title_li='); ?>
</ul>
</section>
<!-- ページ一覧 -->
<section>
<h1>ページ一覧</h1>
<ul>
<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
</ul>
</section>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
license.txt
license.txt はライセンスを記載したテキストファイルです。
License: The Open Software License 3.0 License URI: http://www.opensource.org/licenses/OSL-3.0
loop-simple.php
loop-simple.php は、繰り返し用に他のテンプレートから呼び出して使うテンプレートです。get_template_partを使って呼び出します。
<?php the_ID(); ?> … <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br />
page.php
page.php は固定ページ用のテンプレートです。
<?php get_header(); ?>
<div id="content-page">
<?php while ( have_posts() ) {
the_post();
?>
<?php the_ID(); ?> … <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br />
<?php } /* endwhile */ ?>
</div><!-- #content-page -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
sidebar.php
sidebar.php はサイドバー用のテンプレートです。get_sidebarで呼び出せます。
<ul id="sidebar">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) { ?>
<li id="about">
<h2>About</h2>
<p>simple blog</p>
</li>
<li id="license">
<h2>License</h2>
<ul>
<li><a href="http://www.opensource.org/licenses/OSL-3.0">The Open Software License 3.0</a></li>
</ul>
</li>
<?php } /* endif */ ?>
</ul>
single.php
single.php は単一記事用のテンプレートです。
<?php get_header(); ?>
<?php while ( have_posts() ) {
the_post(); ?>
<nav>
<span class="nav-previous"><?php previous_post_link('%link', '<'); ?></span>
<span class="nav-next"><?php next_post_link('%link', '>'); ?></span>
</nav>
<?php the_ID(); ?> … <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br />
<?php the_content(); ?>
<?php } /* endwhile */ ?>
<?php get_footer(); ?>
style.css
style.cssでは、ブラウザのデフォルト設定をリセットして、ボーダーをすべての要素につけています。
これにより、どの要素に対して、どのようにCSSが適用されているかがわかるようになります。
@charset "utf-8";
/*
Theme Name: Simple
Theme URI: https://www.hiro345.net/blogs/hiro345/
Description: シンプルなテーマ。
Author: hiro345
Version: 1.0
License: The Open Software License 3.0
License URI: http://www.opensource.org/licenses/OSL-3.0
*/
/* reset */
* {
margin: 0;
padding: 0;
font-size: 100%;
border: 1px solid #ccc;
}