こんにちは朱夏です。
今回もWordPressテーマ作成やっていきます。
前回までで、トップページのデザインはほぼ完成しました。
今回は、投稿ページなどのリンク先が表示できるようにしてくところから始めます。
勉強させていただく動画はこちら。
それではやっていきます。
ヘッダー、フッターサイドバーの3つの部分を、他のページでも使いまわせるように別ファイルに分割します。
分割する時のファイル名などをまとめておきます。
場所 | ファイル名 | テンプレートタグ |
---|---|---|
ヘッダー | header.php | <?php get_header(); ?> |
フッター | footer.php | <?php get_footer(); ?> |
サイドバー | sidebar.php | <?php get_sidebar(); ?> |
ヘッダー部分をindex.phpから切り取って、header.phpへ張り付け、index.phpへは代わりにヘッダーのテンプレートタグを書きます。
フッター、サイドバーも同様に分割していきます。
1ファイルごとに確認しながら分割していくと、失敗した時修正が楽です。
プレビューで表示がおかしくなってなければ成功です。
投稿記事を表示するためのsingle.phpの中身を書いていきます。
コードはこんな感じになりました。
<!-- ヘッダー呼び出し -->
<?php get_header(); ?>
<!-- ヘッダー呼び出し END -->
</header>
<!----- ヘッダー END ----->
<!----- メインコンテンツ ----->
<main class="" style="background-color: beige;">
<div class="container">
<div class="row py-3 m-0">
<div class="col-md-8 col-12 p-3">
<!-- 投稿記事 -->
<!-- ループ -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="col-12 px-0">
<div class="p-3 bg-light shadow">
<!-- 記事タイトル -->
<h1 class="h2 text-center"><?php the_title(); ?></h1>
<!-- カテゴリー -->
<p class="text-center mb-0"><?php the_category( ' ' ); ?></p>
<!-- 日付 -->
<p class="text-center mb-0"><small class="text-muted"><?php the_time('Y/n/j'); ?> <?php the_time('G:i'); ?></small></p>
</div>
</div>
<div class="col-12 py-3 px-0">
<div class="bg-light shadow">
<div>
<?php if ( has_post_thumbnail() ) : ?>
<?php the_post_thumbnail( '', array( 'class' => 'img-fluid' ) ); ?>
<?php else : ?>
<img src="<?php echo get_template_directory_uri(); ?>/img/bg_digital_pattern_blue.jpg" class="card-img" alt="...">
<?php endif; ?>
<div class="text-left p-3"><?php the_content(); ?></div>
</div>
</div>
</div>
<?php endwhile; else : ?>
<p>記事がありません。</p>
<?php endif; ?>
<!-- ループ -->
<!-- 投稿記事 END -->
</div>
<!-- サイドバー呼び出し -->
<?php get_sidebar(); ?>
<!-- サイドバー呼び出し -->
</div>
</div>
</main>
<!----- メインコンテンツ END ----->
<!-- フッター呼び出し -->
<?php get_footer(); ?>
<!-- フッター呼び出し END -->
投稿記事を1ページ表示にして、ピックアップの項目を削っています。
表示するとこんな感じになります。
これを1つ作っておくだけで、投稿ページ毎に記事の内容を切り替えてくれます。
これで管理画面から投稿できるようになりました。
固定ページの表示はpage.phpを書き換えます。
コードはこちらです。
<!-- ヘッダー呼び出し -->
<?php get_header(); ?>
<!-- ヘッダー呼び出し END -->
</header>
<!----- ヘッダー END ----->
<!----- メインコンテンツ ----->
<main class="" style="background-color: beige;">
<div class="container">
<div class="row py-3 m-0">
<div class="col-12 p-3">
<!-- 投稿記事 -->
<!-- ループ -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="col-12 px-0">
<div class="p-3 bg-light shadow">
<!-- 記事タイトル -->
<h1 class="h2 text-center"><?php the_title(); ?></h1>
<!-- カテゴリー -->
<p class="text-center mb-0"><?php the_category( ' ' ); ?></p>
<!-- 日付 -->
<p class="text-center mb-0"><small class="text-muted"><?php the_time('Y/n/j'); ?> <?php the_time('G:i'); ?></small></p>
</div>
</div>
<div class="col-12 py-3 px-0">
<div class="bg-light shadow">
<div>
<?php if ( has_post_thumbnail() ) : ?>
<?php the_post_thumbnail( '', array( 'class' => 'img-fluid' ) ); ?>
<?php else : ?>
<img src="<?php echo get_template_directory_uri(); ?>/img/bg_digital_pattern_blue.jpg" class="card-img" alt="...">
<?php endif; ?>
<div class="text-left p-3"><?php the_content(); ?></div>
</div>
</div>
</div>
<?php endwhile; else : ?>
<p>記事がありません。</p>
<?php endif; ?>
<!-- ループ -->
<!-- 投稿記事 END -->
</div>
</div>
</div>
</main>
<!----- メインコンテンツ END ----->
<!-- フッター呼び出し -->
<?php get_footer(); ?>
<!-- フッター呼び出し END -->
こちらは投稿ページと同じですが、サイドバーを削って、記事の部分の横幅を広げています。
実行結果はこんな感じです。
かなりシンプルなデザインになりました。
投稿ページと固定ページを作成しました。
これで、だいぶ完成に近づいてきました。
あと残っている作業は、細かい部分の作り込みや、検索結果の表示ページ、404ページを準備したりといったところでしょうか。
今回はここまでです。
次回もよろしくお願いします。