ゼロから始めるWordPress自作テーマ #4「投稿一覧をGrid表示しよう」

「ゼロから始めるWordPress自作テーマ」では、既成のテーマを使わずにゼロからWordPressサイトを構築する方法を、私のブログサイト「OUNI studio」の構築例をもとに紹介します。

WordPressの既成テーマは簡単にインストールできますが、実際にサイトを構築する際には、既成のテーマをカスタマイズするよりも、自分でテーマを作成した方が簡単な場合が多いです。自分でWordPressテーマを作れるようになれば、サイトを自由にデザインできるようになります。

第4回は「投稿一覧をGrid表示しよう」です。

以下のように、トップページの投稿一覧をGrid表示できるようになります。

投稿一覧をGrid表示させる

今回作成したWordPressテーマのソースコードは以下から取得できます。

CSSを適用させよう

Grid表示には、cssを使います。そのために、まずWordPressサイトにcssを適用させます。

まず最初に index.php と同じフォルダ内に style.css というファイルを作成します。

次に、functions.php に以下を追加します。

// スタイルシートの適用
function custom_theme_assets() {
  wp_enqueue_style( 'style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'custom_theme_assets' );

最後に、index.php に 8行目の「wp_head」を追加します。これで style.css を適用する準備が整いました。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My WordPress Theme</title>
  <?php wp_head(); ?>
</head>
<body>

Grid表示させよう

それでは、cssで投稿をGrid表示させます。

CSSで簡単にGrid表示する方法が、Twitterで紹介されていました。たった3行で実装できるので、こちらの情報を参考にさせていただきます。

まずは、index.php に以下のように指定します。投稿一覧の div に対して、container という名前の id を指定します。

<body>
  <h1>記事の一覧</h1>

  <div id="container">
      <!-- 投稿の数だけ繰り返して処理する -->
      <?php while (have_posts()) : ?>
        
        <!-- 投稿を取得 -->
        <?php the_post(); ?>

        <div>

次に、style.cssで container に対して、Gridを指定します。

#container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-gap: 30px;
}

これでGrid表示できました。

記事一覧がGrid表示された

まとめ

今回は、cssをWordPressサイトに適用させて、投稿一覧をGrid表示させました。今後、見た目の調整は style.css ファイルに記述していきます。

次回は、css でサイトの見た目を整えていきます。