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つの選択肢に入れるのもありだと考えています。

スポンサードリンク

関連コンテンツ

オススメ記事

クイックタグ

【WordPress】クイックタグを編集し効率よく記事を書こう!

WordPressで記事を投稿するとき、クイックタグを使うと便利です。 デフォルトで用意されているクイックタグもありますが、それだけでは少々不便なところもあります。 今回は効率よく記事を書くた

wordpress

【WordPress】パンくずリストをプラグイン無しで自作する方法

※追記(2018/2/12) もっと高機能になるように、改良修正しました。 人生で3回ほど死にそうになったことがある@It_is_Rです。 WordPressのパンくずリストを作

WordPressカスタムヘッダーを完璧に使いこなしたい人へ告ぐ!

森の中に昔から住んでる@It_is_Rです。 WordPressのカスタマイズをする上で、カスタムヘッダーを使うと、色やヘッダー画像をWordPressの管理画面から操作できるようになり便利です

GitHubのアカウントを作成する方法

Gitを使うとバージョン管理が簡単になりますが、それ以前に自分の頭の中を管理するのが大変な@It_is_Rです。 Gitの使い方をいくつかの記事に分けて紹介していきたいと思います。まず今回はG

小学生からのプログラミング入門。プログラミングってなぁに?

小学校でプログラミングを勉強しなくてはいけないことになり、「プログラミングなんてやったことないし、そもそもプログラミングってなんなんだろう」と思う方も多いのではないでしょうか。 といっても、「

WordPress|特定カテゴリーに属する記事を一覧表示させる方法!!

今まで、何度かに分けて書いた記事でも、その一覧がなかったので見にくいなーと思っていた@It_is_Rです。 昨日、記事の一覧表示をするショートコードを作って、記事の一覧が欲しい記事にだけ貼り付けてみ

パスの書き方を覚えるべ!

パスの書き方を覚えよう。絶対パス、相対パス、ルート相対パスの違い

みなさん、こんにちは。今日もプログラミングの勉強《べんきょう》をはじめていきましょう。 今回は、パスの書き方について学びます。パスというのは、ファイルの場所《ばしょ》を、パソコンに教《おし》え

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

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

【Xcode7】Swift2でMacアプリ開発。Storyboardでボタンを作る。

喧嘩するほど仲がいいとは言いますが、喧嘩する相手がいません。友達がいないということでしょうか。@It_is_Rです。 前回、StoryboardでMacのウィンドウに文字を表示しました。しかし、

webpackの設定ファイル「webpack.config.js」の使い方を覚えよう

webpack.config.jsはwebpackを使う上での設定ファイルです。 今回は、webpack.config.jsの使い方を紹介します。 webpack.config.jsとは

コメントをどうぞ!(コメントは承認後に反映されます)

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です