1. HOME
  2. »
  3. プログラミング・Web
  4. »
  5. WordPress
  6. »
  7. WordPress テーマ自作 | Pug ( Jade ) で記事一覧ページを作る方法!

WordPress テーマ自作 | Pug ( Jade ) で記事一覧ページを作る方法!

愛と勇気だけが友達の@It_is_Rです。
今回はPugでWordPressテーマを作る方法を少し紹介します。

詳しいテーマの作り方はこちらをご覧ください。
WordPressのテーマを自作してみよう。テーマ開発の方法を徹底解説!

今回は gulp のプラグインを使って Pug ( 旧 Jade )をコンパイルするので、二回目のこちらの記事で、準備をしておいてください。
WordPress のテーマ開発に絶対必須な gulp プラグイン9選!

目次
  1. 記事一覧ページを作る
  2. まとめ

記事一覧ページを作る

前回の記事で、ファイルの優先順位を解説しましたが、 もっとも優先度の低いファイルが index.php です。
しかし、このファイルは最も重要なファイルと言えます。極端な話、このファイル一つで、全てのページを作ることができるからです。

まず、サイト全体のベースから作っていきたいので、この index.php を使って記事一覧ページを作ります。となると、記事一覧ページは、 header.php, index.php, footer.php, sidebar.php の4つに分けることができます。

wordpress

しかし、まだサイドバーの設定をしていないので、今回使うファイルは、 header.php, index.php, footer.php の3つです。
サイドバーについては、後日、別の記事で解説していきます。

index.php ファイルを作る

パーツごとのファイル( header.php や footer.php など )は、 index.php から呼び出してあげる必要があります。
まずはその基礎となる index.php を作ります。

index.pug(コンパイル前)

:php get_header();
main#main
	:php while(have_posts()) :
	:php the_post();
	article.p-article-list.c-media
		:php if(has_post_thumbnail()):
		a.c-media__img.p-article-list__thumbnail(href!="<?php the_permalink(); ?>")
			:php the_post_thumbnail('medium', array('class' => 'p-article-list__catch p-article-list__catch--main'));
		:php endif;
		.c-media__body
			h1.p-article-list__ttl
				a(href!="<?php the_permalink(); ?>")
					:php the_title();
			p.c-media__txt.p-article-list__snippet
				:php the_excerpt();
		time.c-panel.p-article-list__time(datetime!="<?php the_time('c'); ?>")
			:php the_time("Y/n/j")
		a.p-article-list__readmore(href!="<?php the_permalink(); ?>") 続きを読む
	:php
		endwhile;
		the_posts_pagination(array(
			'mid_size'				=> 2,
			'prev_text'				=> 'Prev',
			'next_text'				=> 'Next',
			'show_all'				=> false,
			'before_page_number' => '',
		));
:php
	get_footer();

index.php(コンパイル後)

<?php get_header(); ?>
<main id="main">
  <?php while(have_posts()) : ?><?php the_post(); ?>
  <article class="p-article-list c-media"><?php if(has_post_thumbnail()): ?><a class="c-media__img p-article-list__thumbnail" href="<?php the_permalink(); ?>"><?php the_post_thumbnail('medium', array('class' => 'p-article-list__catch p-article-list__catch--main')); ?></a><?php endif; ?>
    <div class="c-media__body">
      <h1 class="p-article-list__ttl"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
      <p class="c-media__txt p-article-list__snippet"><?php the_excerpt(); ?></p>
    </div>
    <time class="c-panel p-article-list__time" datetime="<?php the_time('c'); ?>"><?php the_time("Y/n/j") ?></time><a class="p-article-list__readmore" href="<?php the_permalink(); ?>">続きを読む</a>
  </article><?php endwhile;
the_posts_pagination(array(
	'mid_size'				=> 2,
	'prev_text'				=> 'Prev',
	'next_text'				=> 'Next',
	'show_all'				=> false,
	'before_page_number' => '',
)); ?>
</main><?php get_footer(); ?>

header.php ファイルを作る

では、header.php を作ります。

header.pug(コンパイル前)

doctype
<html <?php language_attributes(); ?>>
head
	//metaタグ, css,js の読み込みなど
	:php wp_head();
<body <?php body_class('page'); ?>>
header.p-header
	h1.p-header__ttl
		a(href!="<?php echo home_url(); ?>" rel="home")
			:php bloginfo('name');
	p.p-header__info 
		:php bloginfo('description');

header.php(コンパイル後)

<!DOCTYPE html><html <?php language_attributes(); ?>>
<head>
  <!--metaタグ, css,js の読み込みなど--><?php wp_head(); ?>
</head><body <?php body_class('page'); ?>>
<header class="p-header">
  <h1 class="p-header__ttl"><a href="<?php echo home_url(); ?>" rel="home"><?php bloginfo('name'); ?></a></h1>
  <p class="p-header__info">
     <?php bloginfo('description'); ?></p>
</header>

footer.php ファイルを作る

footer.php を作っていきます。

footer.pug(コンパイル前)

footer.p-footer
	div.p-footer__copyright
		small Copyright © <?php bloginfo('name'); ?> All Rights Reserved
| </div>
:php wp_footer();
| </body>
| </html>

footer.php(コンパイル後)

<footer class="p-footer">
  <div class="p-footer__copyright"><small>Copyright © <?php bloginfo('name'); ?> All Rights Reserved</small></div>
</footer></div><?php wp_footer(); ?></body>
</html>

実際にサイトを表示してみると、スタイルのあたっていないシンプルなサイトになっていると思います。

まとめ

今回は、3つのファイルを使ってトップページをつくりました。

WordPress では、 PHP を使うということ、ヘッダーやフッターなどを分けて書くことから、 Pug を使うというのは効率が悪いようにも感じられるかもしれません。
しかし、記述の短さや、後々の編集のしやすさを考えると、 Pug を1つの選択肢に入れるのもありだと考えています。

スポンサードリンク

関連コンテンツ

オススメ記事

【Android Studio】新規プロジェクトを作成する方法。

インスタント焼きそばを作ろうとすると、なぜか焼うどんになります。 @It_is_R です。 しかも、ラーメン作ろうと思うと焼きそばができあがります。 前回、 Android Studio のイ

【Gitの使い方 – その2】GitをMacにインストールする方法!

いらないファイルは残っているのに、欲しいファイルに限って見つからない@It_is_Rです。 Gitの使い方、第2回目の今回はGitをMacにインストールする方法を紹介します。

【Android Studio】アプリ開発の基本とそれぞれのファイルの役割を覚える。

iPhone持ってないみなさん、一緒にAndroidアプリ開発しましょう。@It_is_Rです。 Androidアプリ開発、5回目となりました。 今回は Android Studio でアプリ

【Gitの使い方 – その4】ブランチを使って履歴を分岐させる方法

エビの殻や、ポテチ、煮干しなどを食べると、必ずと言っていいほど口が血だらけになります。@It_is_Rです。 さて、Gitの使い方4回目の今回は、ブランチについてです。 ブランチは作業を枝分か

WordPress|ショートコードの作り方&使い方。確実に使いこなす為のガイド。

前回、WordPressで、特定のカテゴリ一覧を表示する方法について書きました。 改めまして、@It_is_Rです。 特定のカテゴリ一覧を表示したとき、ショートコードというものを使いましたが、

.zshrc で zsh をカスタマイズしてみよう。(プラグイン無し)

昔、車に幽霊が乗っていたので、じっと目を凝らして見ていたら、ただの人だったことがあります。@It_is_Rです。 あの時は気まずかった。。。女性の方でした。 さて、今回はターミナルをかっこよく

【 gulp 】 超便利! Sass で Normalize.css などをインポートする方法。

ふと立ち上がった瞬間に、ホットマットを猫に奪われる@It_is_Rです。 全然どいてくれない。 今回は gulp を使って、 Sass ファイルから Normalize.css などをインポー

FC2でブログを始めよう!誰でも簡単にできるブログの作り方

FC2ブログは、FC2が運営する無料でブログを開設できるサービスです。(有料版もあります) また、FC2のサービスには、動画、ライブ配信、アフィリエイト、小説など、様々なものがあります。 今回

迷路やRPGで使えるマップを作ってみよ!

小学生からのJavaScript。迷路やRPGで使えるマップを作ってみよう!

小学生からのプログラミング講座(こうざ)、第10弾です。 前回はHTML5とCanvasを使って、キャラクターがキーボードの入力(にゅうりょく)で移動(いどう)するところまで、紹介(しょうかい)

文字を一文字ずつ表示してみよう!

小学生からのJavaScript。改行と一文字ずつ画面に表示する方法!

小学生からのJavaScript講座です。 このシリーズでは、ゲームをつくりながらJavaScriptの使い方を学んでいきます。 前回、画面に文字を表示するためのクラスを作ったのですが、それを

コメントをどうぞ!

メールアドレスが公開されることはありません。