ウェブ学のすすめ

Study of Web Design & Programing

Wordpressのオリジナルテーマを作る

初めてローカルサーバーに1からWordpressのテーマを構築することができました。制作時間は約8時間です。2回目以降はもっと短縮できるようにしたいです!

第7章の背景画像の表示に戸惑いましたが、

を参考にして解決しました。WordPress 3.3以降ではカスタム背景の機能を利用した背景画像が表示されないという問題が発生しているそうです。

 プレビュー

index.php

<?php get_header(); ?>

<!-- ▼#content -->
<div id="content">

<?php if(is_category()): ?>
<p id="pagetitle">
<?php single_cat_title(); ?>
</p>
<?php endif; ?>

<?php if(is_month()): ?>
<p id="pagetitle">
<?php echo $year . '' . $monthnum . ''; ?>
</p>
<?php endif; ?>

<?php if(have_posts()): while(have_posts()):
the_post(); ?>

<!-- ▼.post -->
<div class="post">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

<?php the_content(); ?>

<p class="postinfo">
<?php echo get_the_date(); ?> <?php the_time(); ?>
 |
カテゴリー:<?php the_category(', '); ?>
 |
<a href="<?php comments_link(); ?>">コメント
    <?php comments_number('(0)','(1)','(%)'); ?>
</a>
</p>
</div>
<!-- ▲.post -->

<?php if(is_single()): ?>
<p class="pagelink">
<span class="oldpage"><?php previous_post_link(); ?></span>
<span class="newpage"><?php next_post_link(); ?></span>
</p>
<?php endif; ?>

<?php endwhile; endif; ?>

<?php if(is_home() or is_archive()): ?>
<p class="pagelink">
<span class="oldpage"><?php next_posts_link('&laquo; 古い記事 '); ?></span>

<span class="newpage"><?php previous_posts_link('新しい記事 &raquo;'); ?></span>
</p>

<?php endif; ?>

<?php comments_template(); ?>
</div>	
<!-- ▲#content -->

<!-- ▼#sidebar -->
<div id="sidebar">
<ul>
<?php dynamic_sidebar(); ?>
</ul>

<p class="feed">
<img src="<?php bloginfo('template_url'); ?>/feed-icon-28x28.png" alt="*" width="28" height="28">
<a href="<?php bloginfo('rss2_url'); ?>">RSS FEED</a>
</p>
</div>
<!-- ▲sidebar -->

<?php get_footer(); ?>

header.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="<?php bloginfo('charset') ?>">
<title><?php bloginfo('name') ?>
<?php wp_title(); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">
<link rel="alternate" type="application/rss+xml" title="RSS フィード" href="<?php bloginfo('rss2_url'); ?>">
<!--[if lte IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--[if lte IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>

<!-- ▼#container -->
<div id="container">

<!-- ▼#header -->
<div id="header">
<h1><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></h1>
<p id="desc"><?php bloginfo('description'); ?></p>

<?php if(!(is_page('ビジネスサイト風のページ'))): ?>
<?php if(get_header_image()): ?>
<p id="image"><img src="<?php header_image(); ?>" alt="*" width="<?php echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>"></p>
<?php endif; ?>
<?php endif; ?>
</div>
<!-- ▲#header -->

<!-- navigationbar -->
<div id="nav">
<?php wp_nav_menu(array(
'theme_location' => 'navigation'
)); ?>
</div>

footer.php

<!-- ▼#footer -->
<div id="footer">
<address>Copyright &copy; <a href="mailto:<?php bloginfo('admin_email'); ?>">ひだまり日記</a>,ALL rights reserved.</address>
</div>
<!-- ▲footer -->
</div>	
<!-- ▲#container -->
</body>
</html>

page.php

<?php get_header(); ?>

<!-- ▼#content -->
<div id="content" class="page">

<?php if(have_posts()): while(have_posts()):
the_post(); ?>

<div class="post">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

<?php the_content(); ?>
</div>

<?php endwhile; endif; ?>

</div>	
<!-- ▲#content -->

<?php get_footer(); ?>

functions.php

<?php

//ウィジェット
register_sidebar();

//受信したコメント
function mydesign($comment, $args,$depth){
$GLOBALS['comment'] = $comment; ?>


<li class="compost">
<?php comment_text(); ?>
<p class="cominfo">
<?php comment_date(); ?> <?php comment_time(); ?>
 |
<?php comment_author_link(); ?>
</p>

<?php	
}

//カスタムメニュー
register_nav_menus(array(
'navigation' => 'ナビゲーションバー'
));


//カスタムヘッダー
add_custom_image_header('','admin_header_style');

function admin_header_style(){
?>

<style type="text/css">
#headimg {
	width:760px!important;	
}
</style>
<?php
}


define('NO_HEADER_TEXT',true);

define('HEADER_IMAGE','%s/default_header.jpg');

define('HEADER_IMAGE_WIDTH',760);

define('HEADER_IMAGE_HEIGHT',200);

//カスタム背景
add_custom_background();
?>

comments.php

<div id="comments">

<?php if(have_comments()): ?>
<h3>コメント</h3>

<ul>
<?php wp_list_comments('callback=mydesign'); ?>
</ul>
<?php endif; ?>

<?php comment_form(); ?>

<p id="comfeed">
<?php post_comments_feed_link('コメントの更新情報'); ?>
</p>

<?php if(pings_open()): ?>
<p id="trurl">
<strong>トラックバックURL:</strong>
<?php trackback_url(); ?>
</p>
<?php endif; ?>

</div>

business.php

<?php
/*
Template Name: ビジネスサイト風テンプレート
*/
?>
<?php get_header(); ?>

<!-- ▼#content -->
<div id="topcontent">

<?php if(have_posts()): while(have_posts()):
the_post(); ?>

<p><img src="<?php bloginfo('template_url'); ?>/topimage.jpg" alt="*" width="760" height="370"></p>
<?php the_content(); ?>


<?php endwhile; endif; ?>

</div>	
<!-- ▲#content -->


<?php get_footer(); ?>

css.php

/*
Theme Name: Sample Theme
Theme URI: http://www.www.www/
Description: This is my sample theme.
*/

/* reset */
* {
	margin:0;
	padding:0;
}

img {
	border:none;
}

/* #container */
#container {
	width:760px;
	margin:auto;
}

/* #header */
#header {
	margin:0 0 20px;
}

#header h1 {
	font-size:1.875em;
	float:left;
	margin:5px 0 5px;
}

#header h1 a {
	text-decoration:none;
	color:#000;
}

#header p#desc {
	font-size:0.75em;
	color:#444;
	float:right;
	margin:22px 8px 8px 0;
}

#header p#image {
	margin:8px 0 0;
}

/* nav*/
#header {
	margin:0;
	padding: 0;
}
#nav {
	clear:both;
	width:100%;
}
#nav ul {
	list-style-type:none;
	background-color:#000;
	padding:8px 0;
	margin:0 0 20px;
}
#nav li a {
	font-size:0.75em;
	color:#fff;
	text-decoration:none;
}
#nav li a:hover {
	color:#ffaa00;
}
#nav li {
	display:inline;
	border-right:1px solid #fff;
	padding:0 15px;
}

/* #content */
#content {
	width:515px;
	float:left;
}
#pagetitle {
	font-size:0.875em;
	font-weight:bold;
	color:#0c8bcd;
	border:1px dotted #0c8bcd;
	text-align:center;
	padding:10px 0;
}

.post {
	border:1px solid #0c8bcd;
	padding:15px;
	margin:0 0 20px;
}
.post h2 {
	background-color:#a3d2f2;
	background-image:url(titlebar.png);
	font-size:0.875em;
	padding:10px;
}
.post h2 a {
	text-decoration:none;
}
.post p {
	font-size:0.875em;
	line-height:1.6;
	margin:10px 0 0;
}

p.postinfo {
	color:#0c8bcd;
	text-align:right;
	margin:20px 0 0;
	clear:both;
}
p.postinfo a {
	color:#0c8bcd;
}

/* image in .post */
.aligncenter {
	display:block;
	margin:0 auto;
}

.alignleft {
	float:left;
	margin:0 10px 10px 0;
}

.alignright {
	float:right;
	margin:0 0 10px 10px;
}

.wp-caption {
	border:1px solid #aaa;
	text-align:center;
	padding:5px 0 5px;
	margin:20px auto 0;
}

/* pagelink */
span.oldpage {
	float:left;
	margin:0 0 15px;
	display:inline;/* IE6対策*/
}
span.newpage {
	float:right;
	margin:0 0 15px;
	display:inline;/* IE6対策*/
}
p.pagelink a {
	font-size:0.75em;
	color:#0c8bcd;
}

p.pagelink {
	overflow:hidden;
	width:100%;
}

/* comment */
#comments {
	border:1px solid #0c8bcd;
	padding:18px;
	margin:20px 0;
}
#comments h3 {
	font-size:0.875em;
	border-bottom:1px solid #0c8bcd;
	padding:0 0 3px;
}

#comments p {
	font-size:0.75em;
	margin:10px 0 0;
}

#comments p a {
	color:#0c8bcd;
}
#comments input, #comments textarea {
	display:block;
}
#comments textarea {
	width:450px;
}
#comments .required {
	color:#ff0000;
}
#comments code {
	display:block;
	margin:5px 0 0;
	font-size:smaller;
}

#comments ul {
	list-style-type:none;
	margin:0 0 20px;
}
#comments li.compost {
	border-bottom:1px dotted #0c8bcd;
}
#comments p.cominfo {
	text-align:right;
	margin:0 0 6px;
}

#comments #comfeed {
	background-color:#a3d2f2;
	padding:8px;
	margin:30px 0 0;
}
#comments #comfeed a {
	background-image:url(feed-icon-12x12.png);
	background-repeat:no-repeat;
	background-position:0 50%;
	padding:0 0 0 17px;
	line-height:1em;
	color:#000;
	text-decoration:none;
	display:block;
	width:100%;	
}


/* sidebar */
#sidebar {
	width:220px;
	float:right;
}
#sidebar ul {
	list-style-type:none;
}

#sidebar .widget {
	background-color:#0c8bcd;
	padding:16px;
	margin:0 0 10px;
	color:#fff;
	border-radius:5px;
	-webkit-border-radius:5px;
	-moz-border-radius:5px;
	-ms-border-radius:5px;
	-o-border-radius:5px;
}
#sidebar h2 {
	font-seize:0.75em;
	border-bottom:1px solid #fff;
	padding:0 0 8px;
	margin: 0 0 10px;
}

#sidebar .widget li {
	font-size:0.75em;
	margin:0 0 4px;
	padding:0 0 0 16px;
	line-height:1.5;
	background-image:url(listmark.gif);
	background-repeat:no-repeat;
	background-position:left 3px;
}


#sidebar .widget li a {
	color:#fff;
	text-decoration:none;
}

/* calendar */
.widget_calendar h2 {
	display:none;
}

#wp-calendar {
	font-size:0.75em;
	color:#fff;
	width:100%;
}
#wp-calendar a {
	color:#fff;
}

#wp-calendar th, #wp-calendar td {
	text-align:center;
}

#wp-calendar caption {
	font-weight:bold;
	text-align:left;
	border-bottom:1px solid #fff;
	padding:0 0 8px;
	margin:0 0 8px;
}

#wp-calendar #prev {
	text-align:left;
	padding:3px 0 0;
}
#wp-calendar #next {
	text-align:right;
	padding:3px 0 0;
}

/* feed */
p.feed {
	font-size:0.75em;
	font-family:Verdana, Helvetica, sans-serif;
	text-align:center;
	margin:0 0 10px;
	border:1px dotted #4980A6;
	border-radius:5px;
	-webkit-border-radius:5px;
	-moz-border-radius:5px;
	-ms-border-radius:5px;
	-o-border-radius:5px;
}

p.feed a {
	color:#444;
	text-decoration:none;
}

p.feed img {
	vertical-align:middle;
	margin:0 8px 0 0;
}

/* #footer */
#footer {
	clear:both;
	border-top:1px dotted #333;
	padding:8px 0;
}
address {
	font-size:0.75em;
	font-style:normal;
	font-family:Verdana, sans-serif;
	text-align:center;
}
address a {
	color:#000;
}

/* 固定ページ */
#content.page {
	width:100%;
}

/* トップページ */
#topcontent p {
	text-align:center;
	font-size:0.875em;
	line-height:1.5;
	margin:0 0 20px;
}

/* コンテンツの背景 */
.post, p.feed, #comments {
	background-color:#fff;
}

参考図書

WordPress レッスンブック 3.x対応

WordPress レッスンブック 3.x対応