開発環境の準備と基本ファイルの整備
コードの執筆を始める前に、安定したローカル開発環境を構築することが非常に重要です。これにより、オンラインサイトに影響を与えることなくテストを行うことができます。Local by Flywheel、XAMPP、MAMPなどのツールを使用することをお勧めします。これらのツールを使えば、PHPとMySQLを備えたローカルサーバー環境を迅速に構築できます。
次に、WordPressのインストールディレクトリ内で以下の操作を行う必要があります。 wp-content/themes フォルダ内で、あなたのテーマに合わせた新しいフォルダを作成してください。例えば、「example_folder」という名前にしても構いません。 my-first-themeこのフォルダーがあなたのテーマのルートディレクトリです。次に、2つの最も基本的で必要なファイルを作成する必要があります:style.css と index.php。
style.css このファイルには、テーマのスタイルシートだけでなく、より重要なのはCSSのコメントを使用して記述されたテーマ情報のヘッダー(Theme Header)も含まれています。このヘッダーこそが、WordPressがあなたのテーマを識別するための唯一の情報源です。
推薦図書 ゼロからワンへ:WordPressテーマ開発の全プロセスガイドと実践テクニック。
/*
Theme Name: 我的第一个主题
Theme URI: http://example.com/my-first-theme/
Author: 你的名字
Author URI: http://example.com/
Description: 这是一个从零开始创建的 WordPress 主题示例。
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-first-theme
*/
index.php これはあなたのテーマのメインテンプレートファイルであり、WordPressがテンプレートを探す際の最終的な代替ファイルでもあります。このファイルには、少なくともWordPressコアの呼び出しが含まれていなければならず、これによりページヘッダー、コンテンツループ、ページフッターが出力されます。
<!DOCTYPE html>
<html no numeric noise key 1005>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body no numeric noise key 1002>
</body>
</html>
テーマのテンプレート階層を理解する
他のテンプレートファイルを作成する前に、WordPressのテンプレート階層(Template Hierarchy)を理解することが非常に重要です。この階層によって、WordPressが異なる種類のページ(ホームページ、記事ページ、固定ページ、カテゴリページなど)にどのテンプレートファイルを使用してレンダリングするかが決まります。例えば、個別の記事にアクセスした場合、WordPressは以下の順序でテンプレートを探します:single-post-{slug}.php -> single-post-{id}.php -> single.php -> singular.php -> index.phpこのルールをマスターすれば、特定のファイルを作成することで目的を達成できるでしょう。 single.php または page.phpこれにより、異なるページの外観を正確に制御することができます。
テーマを構築するためのコアテンプレート
完全なテーマとは、単一の要素だけで構成されるものではないはずです。 index.phpより良いコードの組織化と再利用を実現するために、ページを複数の部分に分割し、関数を通じてそれらを導入する必要があります。
ヘッダーとフッターを分離する
作成 header.php このファイルは、HTMLドキュメントのヘッダー部分(DOCTYPEなど)を格納するためのものです。, <head> 一部の要素、およびページのメイン部分の冒頭部分(例えば、ウェブサイトのタイトルやメインナビゲーションなど)についても同様です。それに応じて、必要なコンテンツを作成してください。 footer.php このファイルは、ページの下部に表示される内容(著作権情報など)や閉じ括弧などを保存するために使用されます。
その後、 index.php その中で、あなたはそれを使うことができます。 get_header() と get_footer() 関数を使ってそれらを導入することで、構造がより明確になります。
推薦図書 WordPressテーマ開発入門者のための完全ガイド:ゼロから始めて、あなたの最初のテーマを作成する。
サイドバーのテンプレートを作成します。
もしトピックにサイドバーが必要な場合は、作成することができます。 sidebar.php そのファイルの中で使用されています。 dynamic_sidebar() この関数を使用して、小道具エリアに登録されたサイドバーを呼び出します。メインテンプレート内で使用してください。 get_sidebar() その関数を使ってそれを導入します。
記事のループ処理とコンテンツテンプレートの実装
記事のループ処理はWordPressテーマの中核となる機能であり、データベースから記事を取得して表示するために使用されます。 index.php または single.php ここでは標準的なループ構造を使用しています。記事をリスト(ホームページやアーカイブページなど)や個々の記事ページによりモジュール化された方法で表示するために、以下のような処理を行うことができます: content.php または、それぞれ別々に作成する。 content-single.php と content-excerpt.php。
ループの内部で使用します。 get_template_part() これらのコンテンツテンプレートファイルを呼び出すための関数は、例えば以下のようになります:get_template_part( 'content', get_post_format() );。
テーマ機能とスタイルの統合
優れたテーマは、見た目だけでなく、機能ファイルを通じてその能力をさらに強化する必要があります。
テーマ機能用のファイルを導入します。
作成 functions.php このファイルはテンプレートファイルではありませんが、テーマの「中枢」となるものです。テーマの機能の追加、メニューやサイドバーの設定、スクリプトやスタイルの導入などがこのファイルを通じて行われます。このファイルはテーマが初期化される際に自動的にWordPressによって読み込まれます。
このファイル内では、以下のような操作が可能です: add_theme_support() 関数を使用して、トピック機能を有効にします。例えば、記事のサムネイル(Featured Image)、カスタムロゴ(Custom Logo)、HTML5タグのサポートなどです。
推薦図書 WordPressテーマ開発入門から上級者へ:パーソナライズされたウェブサイトを構築するための核心ガイド。
function my_first_theme_setup() {
// 添加文章和评论的 RSS feed 链接到 head
add_theme_support( 'automatic-feed-links' );
// 启用文章缩略图功能
add_theme_support( 'post-thumbnails' );
// 注册一个导航菜单位置
register_nav_menus( array(
'primary' => __( '主导航菜单', 'my-first-theme' ),
) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );
「小道具の登録」エリア
はい。 functions.php ここでは、「使用」を使っています。 register_sidebar() 関数では1つまたは複数のウィジェットエリア(Widget Areas)を定義することができ、ユーザーはバックエンドの「ウィジェット」インターフェースでコンポーネントをドラッグ&ドロップすることができます。
関数 my_first_theme_widgets_init() {
register_sidebar( array(
'name' => __( 'Main Sidebar', 'my-first-theme' )、
'id' => 'sidebar-1'、
'description' => __( 'Add widget here., 'my-first-theme' ), 'description' => __( 'Add widget here.
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'my_first_theme_widgets_init' );
スタイルとスクリプトが正しく読み込まれています。
絶対にテンプレートファイル内で直接使用してはいけません。 <link> または <script> 标签硬编码引入 CSS 和 JavaScript 文件。正确的方法是在 functions.php ここで使用されているのは wp_enqueue_style() と wp_enqueue_script() 関数を作成し、それをマウントします。 wp_enqueue_scripts フックに掛けられています。これにより、依存関係が正しく処理され、データの重複読み込みが防がれます。
function my_first_theme_scripts() {
// 加载主样式表
wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri() );
// 加载导航脚本,依赖 jQuery
wp_enqueue_script( 'my-first-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array('jquery'), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' );
トピックの国際化と公開準備
トピックの翻訳を実現する
あなたのテーマを世界中のユーザーが利用できるようにするためには、国際化(i18n)が必要なステップです。つまり、ユーザーに表示されるすべての文字列を翻訳関数で囲む必要があります。最もよく使用される関数は… __()(PHPで翻訳結果を表示するために使用)そして _e()(PHPで翻訳結果を出力するために使用します。)また、 style.css のヘッダー部分と functions.php 読み込み関数の中で、テキストドメイン(Text Domain)を正しく設定する必要があります。例えば、以前に設定したもののように… my-first-theme。
最終的なテストと圧縮を行います。
公開する前に、さまざまな環境(異なるPHPバージョン、異なるWordPressバージョン)やデバイス(デスクトップ、タブレット、スマートフォン)で徹底的なテストを行う必要があります。すべてのテンプレートファイルが正常に動作しているか、機能が期待通りに実現されているか、そしてWordPressの公式なテーマ審査基準に準拠しているかを確認してください。
最後に、すべてのデバッグ用のコードやコメントを削除してください(ユーザーにとって役立つ場合を除きます)。そして、CodeKitのようなツールやオンライン圧縮ツールを使用してCSSファイルとJavaScriptファイルのサイズを縮小してください。その後、テーマフォルダー全体をZIPファイルに圧縮し、WordPress.orgのテーマディレクトリにアップロードするか、ユーザーに配布する準備ができます。
概要
ゼロからWordPressテーマを作成することは、体系的な学習プロセスです。これには、環境の構築、テンプレートの階層構造の理解、コアテンプレートファイルの作成、そしてそれらを通じて… functions.php 高度な機能を統合したワークフローの鍵は、WordPressのコーディングスタンダードやベストプラクティスに従うことにあります。例えば、組み込み関数の使用、リソースの正しい読み込み、国際化(インターナショナライゼーション)の実装などです。本文で説明されているステップを実際に試してみることで、動作するテーマを作成するだけでなく、WordPressのテーマがどのように機能するかの核心を深く理解することができ、より複雑で専門的なテーマを開発するためのしっかりとした基盤を築くことができるでしょう。
FAQ よくある質問
トピックを作成するためにはPHPの知識が必要ですか?
はい、PHPを深く習得することは、カスタムのWordPressテーマを開発するために必要不可欠です。WordPress自体がPHPで書かれているため、すべてのテンプレートファイル(例えば…)もPHPで作成されています。 index.php, single.php)および機能ファイル(functions.phpすべての処理(コンテンツの動的生成、データベースへのアクセス、ロジックの実行など)はPHPコードを直接使用して行われています。PHPの知識がなければ、このテーマの核心部分を理解したり操作したりすることはできません。
テーマ開発では、すべてのコードをゼロから書き始めなければならないのでしょうか?
必ずしもそうとは限りません。初心者にとっては、ゼロから始めるのが最適な学習方法です。しかし、実際の開発現場では、開発者たちは「スターターテーマ(Starter Theme)」や「親テーマ(Parent Theme)」を基盤としてよく使用します。例えば、公式の_Underscores(_s)テーマは、シンプルでコーディング規格に準拠した高品質な出発点となるテーマであり、基本的なファイル構造やよく使われる関数がすでに用意されています。このテーマを基にカスタマイズして開発を進めることで、効率を大幅に向上させ、コードの品質を保証することができます。
functions.php ファイルにエラーが発生した場合、どのような結果が発生するのでしょうか?
functions.php ファイル内の構文エラーや致命的なエラーにより、WordPressサイトが「ホワイトスクリーン・オブ・デス(White Screen of Death)」状態になり、フロントエンドもバックエンドの管理画面もアクセスできなくなります。これは、そのファイルがテーマの読み込み初期段階で実行されるためです。このような状況に遭遇した場合、FTPやホストのファイルマネージャを使用して、エラーが発生しているテーマフォルダの名前を変更するか、正常に機能するテーマ(例:Twenty Twenty-Six)に置き換えてサイトのアクセスを復旧させた後、エラーのあるコードを修正してください。
どうやって私のテーマをGutenbergエディタに対応させることができますか?
テーマがGutenbergブロックエディタをよりよくサポートするためには、まず以下のことを行うべきです: functions.php ここで使用されているのは add_theme_support( ‘editor-styles’ ) エディタのスタイルサポートを有効にするには、まず…その後、使用してください。 add_editor_style() この関数は、あなたのテーマ用スタイルシートやエディタ専用に作成されたCSSファイルをバックエンドエディタに読み込みます。これにより、ユーザーが編集時に見るスタイルがフロントエンドで表示されるスタイルとできるだけ一致するようになります。さらに、幅の揃えや色のカスタマイズなどの機能も追加することができます。
次はどうする?
拡大読書と実践的知識
以下は、この記事のトピックに関連しており、さらに深く読むのに適している。あなたの現在の問題に最も近い記事から優先順位をつけ、徐々に周辺のトピックに広げていく方が良い場合が多い。