アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

WordPressでカスタムテーマを作ってみよう

Featured image of the post

WordPressは、その柔軟なカスタマイズ性で知られるCMS(コンテンツ管理システム)です。デフォルトのテーマや既存のテーマを使うだけでなく、自分の好みに合わせたカスタムテーマを作ることもできます。カスタムテーマを作成すれば、デザインや機能を完全にコントロールし、自分だけのオリジナルなWebサイトを構築可能です。

この記事では、WordPressでカスタムテーマを作るための基本ステップを初心者向けに解説します。テーマのディレクトリ構造、必須ファイル、WordPressテンプレートタグの使い方についても触れていきますので、ぜひ参考にしてください。

1. カスタムテーマ作成の準備

カスタムテーマを作る前に、以下のものを準備しておきましょう:

  • ローカルサーバー環境(Docker、XAMPP、MAMP、Localなど)

    WordPressサイトをローカル環境でテストできるようにします。

  • テキストエディタ(VS CodeやSublime Textなど)

    テーマファイルを編集するためにコードエディタを用意しましょう。

  • WordPressのインストール

    ローカルサーバーにWordPressをインストールし、開発用サイトを準備します。

2. カスタムテーマ用のディレクトリ作成

まず、WordPressのテーマは wp-content/themes フォルダ内に保存されます。ここに新しいテーマ用のフォルダを作成しましょう。テーマ名に応じてわかりやすい名前を付けます。例えば「my-custom-theme」という名前のフォルダを作成します。

次に、テーマフォルダ内に少なくとも以下の2つのファイルを作成します。

  1. style.css

    テーマのスタイルシートです。テーマのメタ情報(テーマ名や作者名など)を含む必要があります。

  2. index.php

    テーマのメインテンプレートファイルです。最低限、これらのファイルがあればWordPressはテーマとして認識します。

style.cssの基本構造

style.css ファイルの先頭には、テーマの情報をコメントとして記載します。これにより、WordPressはテーマを認識します。

/*
Theme Name: My Custom Theme
Theme URI: http://example.com
Author: Your Name
Author URI: http://example.com
Description: A custom WordPress theme.
Version: 1.0
*/

index.phpの基本構造

index.php は、テーマが読み込まれる際の最初のファイルです。シンプルにHTML構造を記述します。ここでは、テンプレートタグを使って動的にコンテンツを表示するようにします。

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
  <meta charset="<?php bloginfo( 'charset' ); ?>">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title><?php wp_title(); ?></title>
  <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">
  <?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>

  <header>
    <h1><?php bloginfo( 'name' ); ?></h1>
    <p><?php bloginfo( 'description' ); ?></p>
  </header>

  <main>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
      <h2><?php the_title(); ?></h2>
      <div><?php the_content(); ?></div>
    <?php endwhile; endif; ?>
  </main>

  <?php wp_footer(); ?>
</body>
</html>

これで最低限のHTML構造とWordPressのテンプレートタグを使った、投稿やページが表示されるテーマが完成します。

3. テーマの有効化と確認

テーマフォルダと必要なファイルを準備したら、WordPress管理画面からカスタムテーマを有効化します。

  1. 管理画面にログインし、「外観」→「テーマ」に移動。
  2. 作成した「My Custom Theme」が一覧に表示されているはずです。「有効化」をクリック。
Image in a image block

有効化後、サイトを表示すると、作成したカスタムテーマが適用されていることを確認できます。基本的な投稿のタイトルやコンテンツが、先ほど記述したHTML構造に沿って表示されます。

4. テーマのファイルを追加して拡張

カスタムテーマは index.php だけで動作しますが、より柔軟にカスタマイズするためには他のテンプレートファイルを追加します。一般的に使われるファイルをいくつか紹介します。

header.php と footer.php

ヘッダーやフッターの部分を header.phpfooter.php に分割することで、効率的なテンプレート管理が可能です。例えば、次のように index.php からこれらのファイルを読み込みます。

<?php get_header(); ?>
<main>
  <!-- メインコンテンツ -->
</main>
<?php get_footer(); ?>
functions.php

functions.php はテーマに独自の機能を追加するためのファイルです。例えば、テーマのサポートする機能(カスタムロゴ、メニューなど)を設定することができます。

<?php
// カスタムメニューをサポート
function my_custom_theme_setup() {
  register_nav_menus( array(
    'primary' => __( 'Primary Menu', 'my-custom-theme' ),
  ) );
}
add_action( 'after_setup_theme', 'my_custom_theme_setup' );
?>
single.php と page.php

single.php は個別の投稿ページのレイアウトを定義するテンプレートファイルです。一方、page.php は静的なページのテンプレートとして使われます。

例えば、single.php に以下のように記述することで、投稿ページに独自のレイアウトを適用できます。

<?php get_header(); ?>

<main>
  <article>
    <h1><?php the_title(); ?></h1>
    <div><?php the_content(); ?></div>
  </article>
</main>

<?php get_footer(); ?>
style.cssの追加スタイル

style.css にカスタムCSSを追加することで、テーマのデザインを自由に調整できます。例えば、以下のようなCSSを追加して基本的なレイアウトを整えます。

body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
}

header {
  background-color: #333;
  color: #fff;
  padding: 20px;
  text-align: center;
}

main {
  padding: 20px;
}

5. テーマ開発のヒント

カスタムテーマを作成する際には、以下のポイントを意識すると開発がスムーズに進みます。

  • 子テーマを使う

    既存テーマをカスタマイズする際には、子テーマを作成してカスタマイズを行うと、更新による影響を受けません。

  • WordPress Codexを活用する

    WordPressの公式ドキュメント「Codex」は、テンプレートタグや関数の詳細を確認できる便利なリソースです。

  • テスト環境での作業

    カスタムテーマを本番環境で使う前に、テスト環境でしっかり動作確認を行うことが重要です。

まとめ

WordPressでのカスタムテーマ作成は、最初は少しハードルが高く感じられるかもしれませんが、一度基本を押さえれば柔軟にサイトを構築できます。style.cssindex.php を軸に、必要に応じて他のテンプレートファイルや機能を追加し、自分だけのテーマを作り上げてください。テーマのデザインや機能を自由にコントロールすることで、WordPressサイトの可能性がさらに広がります。



▼ 目次