WordPressテーマ開発環境の構築
WordPressテーマを構築する最初のステップは、専門的なローカル開発環境を整えることです。これにより開発効率が向上するだけでなく、本番サーバー上でテストを行うことで生じる可能性のあるリスクも避けられます。通常、開発者はXAMPP、MAMP、Local by Flywheel、DesktopServerなどの統合開発環境パッケージを選択できます。これらのツールにはApache/Nginx、MySQL/MariaDB、PHPが統合されており、ワンクリックでインストールして利用できます。
環境の準備ができたら、wp-content/themesディレクトリ内にテーマフォルダを作成します。最も基本的なWordPressテーマに必要なファイルは2つだけです。style.css と index.php。style.cssファイルは単なるスタイルシートではなく、先頭のコメントブロックでテーマのメタデータも定義します。以下は基本的な例です。
/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-theme
Author: 你的名字
Author URI: https://example.com
Description: 这是一个用于学习的自定义WordPress主题。
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: my-custom-theme
*/ しかし、index.phpこれはテーマのメインテンプレートファイルで、コンテンツの表示を制御します。初期段階では、WordPressにテーマとして認識され、有効化できることを確認するためだけの非常にシンプルなもので構いません。
推薦図書 WordPressテーマ開発入門:ゼロから最初のカスタムテーマを作成する。
テーマファイルの構造を理解する
堅牢なテーマは、明確なファイル構造に従います。主要なテンプレートファイルには次のものがあります。header.php(ウェブサイトのヘッダー部分)footer.php(ウェブサイトの下部)sidebar.php(サイドバー)そしてfunctions.php(機能関数ファイル)。通じてget_header(), get_footer(), get_sidebar()などのテンプレートタグを使えば、メインのテンプレートファイルにこれらの部分を簡単に組み込めます。作成page.php、single.php、archive.phpこれらのファイルを使って、固定ページ、投稿ページ、投稿アーカイブページの表示をそれぞれカスタマイズできます。整理されたファイル構成は、効率的な開発と後々の保守の基盤になります。
コアテンプレートファイルとテンプレートの階層構造
WordPressはテンプレート階層(Template Hierarchy)の仕組みによって、現在のリクエストのページにどのテンプレートファイルを使うかを決定します。これは上から下へ順に探していくロジックです。たとえば、訪問者がブログ記事を表示すると、WordPressは順番に次を探しますsingle-post-{slug}.php、single-post-{id}.php、single.phpそして、最後に元に戻します。singular.phpどちらもない場合は使用index.php。この仕組みを深く理解することが、精度の高いテンプレートカスタマイズの前提です。
ヘッダーとフッターのテンプレートを作成
Webサイトの共通ヘッダーとフッターのコードを独立したファイルに分離することは、DRY(Don't Repeat Yourself)原則を実践するうえで重要です。作成しますheader.phpファイル。これにはドキュメントタイプ宣言、HTML 領域(を通じてwp_head()フックで重要なメタデータやスクリプトを出力し、ページ冒頭やサイトロゴ、ナビゲーションなどの共通ヘッダーコンテンツも表示します。wp_head()非常に重要なフックで、プラグインやテーマの多くの機能がこれに依存しています。
そのため、footer.phpファイルには、著作権情報やウィジェットエリアなど、サイト共通のフッター内容が含まれ、タグの前で呼び出されますwp_footer()フック。はい。index.phpまたはpage.phpこれらのテンプレートの中で使用されています。get_header()とget_footer()関数を使ってそれらを導入します。
使用functions.php增强主题功能
functions.phpこのファイルはテーマの「コントロールセンター」です。関数の定義や機能の追加、WordPressの各種フックへの登録を行い、コアファイルを変更せずにテーマの機能を拡張できます。このファイルはテーマの初期化時に自動的に読み込まれます。
推薦図書 WordPressテーマ開発の完全ガイド:ゼロからパーソナライズされたウェブサイトを作成する。
登録ナビゲーションメニューとサイドバー
とおすregister_nav_menus()関数を使うと、テーマに1つ以上のナビゲーションメニューの位置を登録できます。たとえば、「メインナビゲーション」というメニュー位置を定義します。
function my_theme_setup() {
register_nav_menus( array(
'primary' => __( '主导航菜单', 'my-custom-theme' ),
'footer' => __( '页脚导航菜单', 'my-custom-theme' ),
) );
}
add_action( 'after_setup_theme', 'my_theme_setup' ); 登録後、ユーザーはWordPress管理画面の「外観」→「メニュー」でこれらの位置にメニューを割り当てることができます。テンプレートでは、次を使用しますwp_nav_menu()特定の位置にあるメニューを表示するための関数です。
同様に、使用する場合もあります。register_sidebar()関数を使うとウィジェットエリアを作成でき、ユーザーは管理画面でドラッグ&ドロップしてサイドバーなどのコンテンツ領域を自由にカスタマイズできます。登録時には、ウィジェットエリアの名前、ID、説明、前後を囲むHTMLコードを定義する必要があります。
テーマサポート機能を追加
WordPressのコア機能の多くは、「テーマサポート」を通じて明示的に有効化する必要があります。これはfunctions.phpあなたは中国を通してそれを達成しました。add_theme_support()関数の処理が完了しました。例えば、記事の特徴的な画像(サムネイル)の表示や、カスタマイズ可能なサイトアイデンティティ(ロゴやマーク)のサポートなどが可能になりました。
add_theme_support( 'post-thumbnails' );
add_theme_support( 'custom-logo', array(
'height' => 100,
'width' => 400,
'flex-height' => true,
'flex-width' => true,
) );
add_theme_support( 'title-tag' ); // 让WordPress管理页面标题 これらの記述により、テーマのモダンさと使いやすさが大幅に向上しました。
主题样式、脚本与循环
現代のテーマ開発では、見た目(CSS/JavaScript)を構造(PHP/HTML)や動作(JavaScript)から分離することが求められます。スタイルシートやスクリプトファイルを適切にキューへ追加することは非常に重要です。
推薦図書 プロフェッショナルなWordPressテーマを設計・開発する方法。
安全にスタイルとスクリプトを追加
テンプレートファイル内で直接使用しないでください <link> または <script> ラベルをリソースにハードコードするのではなく、代わりに使用してください wp_enqueue_style() と wp_enqueue_script() 関数を作成し、それらをマウントします。 wp_enqueue_scripts フック内で行います。これにより、依存関係が正しく保たれ、重複読み込みを防ぎ、WordPressのセキュリティと管理のルールにも準拠できます。
function my_theme_scripts() {
// 加入主样式表
wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
// 加入自定义JavaScript文件
wp_enqueue_script( 'my-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' ); メインループの書き方を身につける
“「メインループ」(The Loop)は、WordPressテンプレートでもっとも重要なPHPコード構造で、データベースから一連の投稿を取得して表示するために使われます。基本構造は次のとおりです。
備考:この翻訳はPHPコードのみを対象としたもので、HTMLコードは含まれていません。
<article>
<h2>あなたのウェブサイトのタイトルを表示するには、次のコードを使用してください。</h2>
<div>あなたが送信したメッセージは長すぎます。最大300文字まで送信できます。</div>
</article>
終わりました。ありがとうございました。
<p><?php esc_html_e( '抱歉,没有找到对应的文章。', 'my-custom-theme' ); ?></p>
endif; 終わり ループ内では、次のようなテンプレートタグを使用できますthe_title()、the_content()、the_permalink()、the_post_thumbnail()などを使って、現在の記事情報を出力します。ループを理解し、使いこなすことは、動的コンテンツ表示の基礎です。
概要
WordPressテーマ開発は、フロントエンド技術(HTML、CSS、JavaScript)とバックエンドロジック(PHP)を組み合わせた実践的なプロセスです。環境構築、テンプレート階層の理解、コアテンプレートファイルの作成、活用まで、functions.php機能強化から、安全なリソースの読み込みやメインループの制御に至るまで、その一歩一歩が基本的なカスタマイズと高度な拡張の土台になります。WordPressのコーディング規約とベストプラクティスに従うことで、高機能で美しいテーマを作れるだけでなく、安全性・保守性・将来の互換性も確保できます。テンプレートタグ、フック(Hooks)、WordPress APIを継続的に学ぶことで、より高度なカスタマイズを実現できるようになります。
FAQ よくある質問
開発を始めるには、どのような基礎知識が必要ですか?
建议至少掌握HTML和CSS,这是构建网页结构的基石。同时需要基本的PHP知识,因为WordPress主题逻辑主要由PHP驱动。对JavaScript有了解会在开发交互功能时更有帮助。熟悉WordPress后台的基本操作也是必要的。
テーマを有効化すると画面が真っ白になるのはなぜですか?
这通常是PHP语法错误导致的。请检查functions.phpまた、メインテンプレートファイルに閉じていない括弧やセミコロン、スペルミスがないか確認してください。開発環境ではWP_DEBUGモードを有効にすることをおすすめします。ページ上にエラー情報が直接表示されるため、問題の特定をすばやく行えます。
どうやって私のテーマを多言語に対応させることができるでしょうか?
你需要做好主题的国际化(i18n)准备。在代码中,对所有面向用户的字符串使用__()、_e()などの翻訳関数を使い、正しいテキストドメイン(Text Domain)を設定します。その後、Poeditのようなツールを使って生成.pot翻訳者がこれを基に作成できるテンプレートファイル.poと.mo翻訳ファイルを該当するトピックのフォルダに保存してください。/languagesディレクトリ内に置いてください。
ビジネス向けのテーマを開発する際には、以下の点に注意する必要があります:
商业主题有更高的要求。除了卓越的设计和功能,你必须严格遵守WordPress主题目录的审查标准(如果你想提交的话)。确保代码质量高、安全无漏洞,支持子主题以便用户自定义,提供详尽的文档和更新支持。在法律层面,注意所使用的任何资源(如图标、字体、代码片段)均拥有可商用的许可协议。
次はどうする?
拡大読書と実践的知識
以下は、この記事のトピックに関連しており、さらに深く読むのに適している。あなたの現在の問題に最も近い記事から優先順位をつけ、徐々に周辺のトピックに広げていく方が良い場合が多い。