WordPressのテーマは、ウェブサイトの外観や機能の核心を担っています。既製のテーマを使用するのとは異なり、自作のテーマを開発することで、完全な制御権、より高いパフォーマンス、そしてプロジェクトのニーズに合わせたカスタマイズが可能になります。このガイドでは、ゼロからプロフェッショナルで標準的、かつ拡張性のあるWordPressテーマを構築する方法について、体系的に理解し、実践していきます。
開発環境とツールの準備
最初のコード行を書き始める前に、効率的な開発環境が非常に重要です。
ローカルサーバー環境の構築
統合されたローカルサーバーソフトウェアの使用をお勧めします。例えば、Local by Flywheel、XAMPP、MAMPなどです。これらのツールを使えば、Apache/Nginx、PHP、MySQLをワンクリックでインストールし、オンラインサーバー環境をシミュレートすることができます。必須要件として、PHPのバージョンは7.4以上、MySQLのバージョンは5.6以上である必要があります。
推薦図書 入門から上級者まで:プロフェッショナルレベルのWordPressテーマを作成するための完全な開発ガイド。
コードエディタと開発ツール
機能豊富なコードエディタを選択してください。例えば、Visual Studio Code、PhpStorm、Sublime Textなどがあります。Visual Studio Codeは、PHP IntelephenseやWordPress Snippet、Live Serverといった豊富なプラグインエコシステムを備えており、多くの開発者にとっておすすめの選択肢です。
ブラウザの開発者ツールをインストールし、有効にしておいてください。これにより、HTML、CSS、JavaScriptをリアルタイムでデバッグすることができます。
バージョン管理システム
プロジェクトの開始時からGitを使用してバージョン管理を行ってください。コードのルートディレクトリにGitリポジトリを初期化し、GitHub、GitLab、Bitbucketなどのリモートリポジトリに接続します。これにより、コードの管理が容易になるだけでなく、チームワークや将来のデプロイにも役立ちます。
テーマファイルの構造とコアファイル
標準的なWordPressテーマは、特定のディレクトリ構造とファイル構造に従っています。テーマフォルダは通常、以下の場所にあります: /wp-content/themes/your-theme-name/。
必須のテーマ関連ファイル
各テーマには、2つの最も基本的なファイルを含める必要があります:style.css と index.phpその中で、style.css スタイルシートだけでなく、その上部にあるコメントブロックもテーマの「身分証明書」のようなものであり、WordPressシステムにテーマの情報を伝えるために使用されます。
推薦図書 ゼロから始めるWordPressテーマ開発: ハンズオン・チュートリアルで学ぶ究極のテーマ開発ガイド。
/*
Theme Name: 我的专业主题
Theme URI: https://example.com/my-theme
Author: 你的名字
Author URI: https://example.com
Description: 一个由零开始构建的专业WordPress主题。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-professional-theme
*/ index.php これはトピックのデフォルトテンプレートファイルであり、すべてのページの最後の代替案ともなります。最もシンプルな例です。 index.php ブログ記事を呼び出すループのみを含めることもできます。
テンプレートの階層構造とよく使用されるテンプレートファイル
WordPressでは、テンプレートの階層構造を利用して、特定のページにどのテンプレートファイルを適用するかを決定します。この仕組みを理解することは、テーマ開発において非常に重要です。以下のコアテンプレートファイルを段階的に作成する必要があります:
* header.phpウェブサイトのヘッダー。 <!DOCTYPE html>、<head> 地域情報およびページの上部にある共通部分。
* footer.phpウェブサイトの下部には、著作権情報やスクリプトの導入方法などが記載されています。
* functions.phpトピックの「脳」とは、機能の追加、メニューの登録、サイドバーの設定、スクリプトやスタイルの導入などを行うための部分です。
* page.php`: 単一ページを表示するために使用されます。
* single.php`: 単一のブログ記事を表示するために使用されます。
* archive.php`: 分類、タグ、著者などのアーカイブページを表示するために使用されます。
* front-page.phpこのファイルは、静的なホームページとして設定された場合にウェブサイトのトップページとして表示されます。
* style.css:メインスタイルシート。
メインテンプレートファイル内で使用してください。 get_header()、get_footer()、get_sidebar() これらの部分をモジュール化して導入するために、`function`などの機能を使用します。
コア機能とテーマオプション
とおす functions.php ファイルを使えば、あなたのテーマに強力な機能を追加することができます。
テーマサポート機能を追加
利用する add_theme_support() 関数を使用して、テーマがサポートする主要な機能を宣言します。例えば、記事のサムネイルの表示、カスタムロゴの設定、HTML5タグのサポートなどです。
function my_theme_setup() {
// 启用文章和页面特色图像
add_theme_support( 'post-thumbnails' );
// 启用自定义徽标
add_theme_support( 'custom-logo', array(
'height' => 100,
'width' => 400,
'flex-height' => true,
'flex-width' => true,
) );
// 启用 HTML5 对表单、搜索表单、评论列表等的支持
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
// 添加标题标签支持
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'my_theme_setup' ); 登録メニューとサイドバー
WordPressでは、ユーザーはバックエンドの管理メニューやツールを通じて様々な設定を行うことができます。まずは、そのための準備を行う必要があります。 functions.php それらを登録してください。
推薦図書 WordPressテーマ開発完全ガイド:入門から上級者までの実践トレーニング。
登録後、ナビゲーションメニューを使用できるようになります。 register_nav_menus() 関数:
register_nav_menus( array(
'primary' => __( '主导航菜单', 'my-professional-theme' ),
'footer' => __( '页脚菜单', 'my-professional-theme' ),
) ); そしてその後、 header.php または footer.php ここで使用されているのは wp_nav_menu() 関数の呼び出し。
小道具(サイドバー)の登録エリアの使用方法 register_sidebar() 関数:
register_sidebar( array(
'name' => __( '主侧边栏', 'my-professional-theme' ),
'id' => 'sidebar-1',
'description' => __( '在此添加小工具。', 'my-professional-theme' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) ); テンプレート内で使用する dynamic_sidebar( 'sidebar-1' ) 表示されます。
安全にスクリプトやスタイルを読み込む方法
テンプレートファイル内にCSSやJSファイルのURLを直接ハードコードしては絶対にいけません。代わりに、以下の方法を使用してください: wp_enqueue_scripts フックを使用して、安全にロードの順序を管理します。
function my_theme_scripts() {
// 引入主题主样式表
wp_enqueue_style( 'my-theme-style', get_stylesheet_uri(), array(), '1.0.0' );
// 引入自定义 JavaScript 文件
wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/js/main.js', array( 'jquery' ), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' ); テンプレートタグとループ
WordPressの核心機能はコンテンツの動的な表示であり、これは主にテンプレートタグと「ループ」によって実現されています。
メインループを理解する
“「循環(Loop)」とは、WordPressでデータベースからコンテンツを取得し、ページ上に表示するために使用されるPHPコードのことです。その基本的な構造は以下の通りです:
<!-- 在这里显示每篇文章的内容 -->
<h2>あなたのウェブサイトのタイトルを表示するには、次のコードを使用してください。</h2>
<div>あなたが送信したメッセージは長すぎます。最大300文字まで送信できます。</div>
<p><?php _e( '抱歉,没有找到任何内容。', 'my-professional-theme' ); ?></p>
endif; 終わり このループは、以下の場面で表示されます: index.php、archive.php、single.php ほぼすべての表示内容を扱うテンプレートにおいてです。
よく使われるテンプレートタグ
テンプレートタグとは、特定のコンテンツを出力するために使用されるPHP関数のことです。例えば:
* the_title(): 記事/ページのタイトルを出力します。
* the_content(): 記事/ページの主要内容を出力します。
* the_excerpt(): 記事の要約を出力します。
* the_permalink():記事やページの永久リンクを取得する。
* the_post_thumbnail(): 記事の特徴的な画像を表示します。
* the_category(): 記事が属するカテゴリを出力します。
* comments_template():コメントテンプレートを導入します。
カスタムクエリとループ
時にはメインループの外にあるコンテンツを表示する必要があります。例えば、ホームページに特定のカテゴリの記事リストを表示したい場合などです。そのような場合は、カスタムの WP_Query ループを作成する必要があります。
<?php
$custom_query = new WP_Query( array(
'category_name' => 'featured',
'posts_per_page' => 3,
) );
if ( $custom_query->have_posts() ) :
while ( $custom_query->have_posts() ) : $custom_query->the_post();
// 显示每篇精选文章
endwhile;
wp_reset_postdata(); // 重置全局 $post 数据
endif;
?> 概要
ゼロからWordPressテーマを開発することは、体系的なプロセスです。開発者はPHP、HTML、CSS、JavaScriptなどのフロントエンド技術に精通するだけでなく、WordPressのコアアーキテクチャ(テンプレートの階層構造、フックシステム、データベースクエリなど)を深く理解する必要があります。専門的な開発環境を構築し、標準的なファイル構造を整えることで、効率的にテーマを開発することができます。 functions.php 機能を安定かつ着実に追加し、テンプレートタグやループの使い方にも精通すれば、デザイン要件を完璧に満たし、パフォーマンスが優れ、メンテナンスも容易なプロフェッショナルレベルのテーマを作り出すことができるでしょう。このプロセスには学習曲線がありますが、得られる柔軟性、コントロール能力、スキルの向上は、既製のテーマを使用することでは比べ物になりません。WordPressのコーディングスタンダードやベストプラクティスに従うことが、テーマの安全性、互換性、そして将来への対応を保証する鍵です。
FAQ よくある質問
WordPressテーマを開発するには、どのようなプログラミング言語の基礎が必要ですか?
WordPressのテーマを開発するには、主にPHP、HTML、CSS、JavaScriptの基本知識が必要です。PHPはロジック処理や動的なコンテンツの処理に使用されます。HTMLはページの構造を決定し、CSSはスタイルやレイアウトを制御します。JavaScriptはインタラクティブな効果を実現するために使用されます。MySQLについての基本的な理解も、データの検索や操作を理解するのに役立ちます。
主题的 functions.php 文件有什么作用?
functions.php ファイルはテーマの機能の核心です。これらのファイルを使用して、メニューやサイドバーの設定の追加や変更、テーマに特有の機能(例えば特集画像の表示)の追加、CSSやJavaScriptスクリプトの安全な導入、カスタム関数の定義、さらにはWordPressのフック(Hooks)を通じてコアの動作を拡張したり変更したりすることができます。
どうやって私のテーマを多言語に対応させることができるでしょうか?
テーマを多言語に対応させる(国際化:i18n)には主に2つのステップがあります。まず、 functions.php テーマテキストフィールドを読み込むには、以下の方法を使用してください。 load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' )次に、テーマのすべてのPHPファイル内で、翻訳が必要なすべての文字列を…… __( '文本', 'my-theme' ) または _e( '文本', 'my-theme' ) 関数のラッピング処理が完了した後は、Poeditなどのツールを使用してコードを生成することができます。 .po と .mo 翻訳ファイル。
開発が完了したら、どのようにして自分が作成したテーマをテストすればよいでしょうか?
主题开发完成后,需要进行全面测试。包括:在不同浏览器(Chrome、Firefox、Safari、Edge)和不同设备尺寸(响应式设计)上进行外观测试;使用WordPress调试模式(在 wp-config.php 設定内容 define( 'WP_DEBUG', true );PHPのエラー、警告、通知を確認するために;WP Theme Checkのようなプラグインを使用してテーマがWordPressの公式基準に適合しているかをチェックする;そして、フォーム送信、メニュー、ツールバー、ページング、コメントなどのすべての機能をテストする。
次はどうする?
拡大読書と実践的知識
以下は、この記事のトピックに関連しており、さらに深く読むのに適している。あなたの現在の問題に最も近い記事から優先順位をつけ、徐々に周辺のトピックに広げていく方が良い場合が多い。