WooCommerceテーマ開発入門ガイド:ゼロからあなたのeコマースサイトを構築する

3分で読了
2026-03-15
2026-06-04
2,625
以下のリンクからお買い物をしていただくと、コミッションを差し上げます。.

もしあなたがWordPressのテーマ開発にすでに慣れているなら、WooCommerce用のテーマを作成することは自然な流れになるでしょう。WooCommerceはWordPressのeコマースプラグインであり、その核心機能は一連のカスタムページテンプレート、ループ、ショートコードを通じて実現されています。WooCommerce用のテーマでは、これらのテンプレートを正しく呼び出し、すべてのスタイルやスクリプトがシームレスに統合されるようにする必要があります。

WooCommerce用のテーマを開発するには、まず基本的なWordPressテーマをベースにする必要があります。これはゼロから作成したサブテーマであってもよく、UnderscoresやStorefrontのような既存のフレームワークをベースに二次開発したものであっても構いません。重要なのは、そのテーマがWooCommerceをサポートしていると明示していることです。そうすることで、プラグインがテンプレートファイルをそのテーマの構造に組み込むことができるのです。

このプロセスにはいくつかの重要なステップが含まれます:開発環境の構築、WooCommerceのテンプレート階層の理解、必要なテーマファイルの作成、アクションやフィルターフックを使用した機能のカスタマイズ、そして最終的な製品のテストと最適化です。次に、これらのステップを一つずつ詳しく説明していきます。

推薦図書 WordPressテーマ開発入門ガイド:ゼロから最初のテーマを作成する方法

開発環境の構築とテーマの構造

どんなコードの作成を始める前にも、信頼性の高いローカル開発環境が不可欠です。Local、XAMPP、Dockerなどのツールを使用して、PHP、MySQL、Apache/Nginxを含む開発環境を迅速に構築することをお勧めします。使用しているPHPのバージョンがWooCommerceの最新要件(通常はPHP 7.4以上)に適合していることを確認し、WordPressおよびWooCommerceのプラグインもインストールしてください。

UltaHostのWordPressホスティングサービス
30日間の返金保証、無制限の帯域幅とデータベースサービス、無料のDDoS防御機能が付きます。3年契約をすると、501TPから4Tまでのプランで割引が適用されます。

新しいトピックディレクトリを作成します。例えば: my-woocommerce-themeそして、それを以下の場所に配置してください: wp-content/themes/ ディレクトリ内にあるWooCommerceをサポートするための最も基本的なテーマには、少なくとも以下のコアファイルが必要です:

  • style.cssテーマのスタイルシートには、標準的なWordPressテーマのヘッダーに関するコメントを含める必要があります。
  • index.php:トピックのメインテンプレートファイルです。
  • functions.phpテーマ機能の追加、登録スクリプトやスタイルの設定、WooCommerceのサポートを宣言するためのコアファイルです。

まず、 style.css ヘッダーのコメント内で、テーマ情報を明確に定義する必要があります。

/*
Theme Name: My WooCommerce Theme
Theme URI: https://yourdomain.com/
Author: Your Name
Description: 一个为 WooCommerce 定制的现代电商主题。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-woocommerce-theme
*/

次に、 functions.php ファイルの中で、最も重要な最初の項目は、あなたのテーマがWooCommerceをサポートしていることを宣言することです。これは以下のように行われます: add_action フックと… add_theme_support 関数によって実現されています。

<?php
/**
 * 主题功能文件
 */
function my_woocommerce_theme_setup() {
    // 声明主题支持 WooCommerce
    add_theme_support( 'woocommerce' );
    // 可选:支持 WooCommerce 的特定功能,如产品画廊缩放、轮播等
    add_theme_support( 'wc-product-gallery-zoom' );
    add_theme_support( 'wc-product-gallery-lightbox' );
    add_theme_support( 'wc-product-gallery-slider' );
}
add_action( 'after_setup_theme', 'my_woocommerce_theme_setup' );

// 注册主题的样式和脚本
function my_woocommerce_theme_scripts() {
    wp_enqueue_style( 'main-style', get_stylesheet_uri() );
    // 引入 WooCommerce 样式
    if ( class_exists( 'WooCommerce' ) ) {
        wp_enqueue_style( 'woocommerce-theme', get_template_directory_uri() . '/css/woocommerce.css' );
    }
}
add_action( 'wp_enqueue_scripts', 'my_woocommerce_theme_scripts' );
?>

WooCommerceテンプレートの理解とカバー

WooCommerceは、カスタマイズ可能なテンプレートシステムを採用しています。すべてのデフォルトテンプレートファイルは、プラグインディレクトリ内にあります。 templates/ フォルダ内にあります。これらのテンプレートをテーマ内でカスタマイズするには、テーマディレクトリ内に「custom_templates」という名前のフォルダを作成する必要があります。 woocommerce そのフォルダーにアクセスし、プラグイン内の同じパス構造に従って対応するテンプレートファイルをコピーしてください。その後、必要に応じてテンプレートファイルを修正してください。

推薦図書 WordPressテーマ開発の究極ガイド:ゼロから始めて、あなたの最初のカスタムテーマを構築する

例えば、もし単一の製品ページのテンプレートを変更したい場合、WooCommerceのデフォルトのパスは… plugins/woocommerce/templates/single-product.phpあなたは自分のトピック内で以下の内容を作成する必要があります:themes/my-woocommerce-theme/woocommerce/single-product.phpこのファイルが存在する場合、WooCommerceはテーマ内にあるバージョンを優先して読み込みます。

テンプレートの階層もまた重要な概念です。WooCommerceは、WordPressの標準的なテンプレート階層を巧みに取り入れています。例えば、ショップページ(Shop Page)については、WordPressは以下の順序でテンプレートを探します:archive-product.php > archive.php > index.phpしたがって、作成する。 archive-product.php これは、カスタムストアの一覧ページを作成するための最も直接的で効果的な方法です。

よく使用され、優先的に上書きを推奨される主要なテンプレートファイルには以下のものがあります:
- single-product.php:単一製品の詳細ページ。
- archive-product.php製品アーカイブページ(ストアオーナーページ)
- cart/cart.php:ショッピングカートページ。
- checkout/form-checkout.php:決済ページ。
- myaccount/my-account.php私のアカウントページです。

hosting.com 共有ホスティング
AMD EPYC CPU、NVMe SSDストレージ、LiteSpeedによる高いパフォーマンス、24時間365日の専門家による社内サポート、SSL、ブルートフォース、マルウェア、DDoS保護などの高度なセキュリティ対策、最大73%のコスト削減

テンプレートを上書きする際のベストプラクティスは、まずWooCommerceプラグイン内にある元のテンプレートファイルを自分のテーマの対応するディレクトリにコピーし、その後で修正を加えることです。これにより、WooCommerceのコア機能が破壊されるのを防ぐことができます。

フックを使用して機能をカスタマイズする

テンプレートファイルを上書きするだけでなく、WooCommerceには多数のアクション(actions)も用意されています。action) およびフィルター (filterフック(hook)とは、コアテンプレートファイルを変更することなく、コンテンツや機能を追加、削除、または変更できる仕組みです。これは通常、テンプレートを直接上書きするよりも軽量で、メンテナンスも容易です。

アクションフックを使用すると、特定の場所でカスタムコードを実行することができます。例えば、製品の概要情報の後にカスタムのブロックを追加することができます。

推薦図書 プロフェッショナルなウェブサイトの作成:ゼロからカスタムWordPressテーマを開発するための完全ガイド

function my_custom_product_message() {
    echo '<p class="my-custom-notice">🎉 この製品は現在、期間限定のキャンペーンに参加しています!</p>';
}
add_action( 'woocommerce_single_product_summary', 'my_custom_product_message', 20 );

ここでは、woocommerce_single_product_summary これはフックの名前です。20 これは優先順位の数字であり、実行順序を決定します。

フィルターフックスを使用すると、データを変更することができます。例えば、「カートに追加」ボタンのテキストを変更するといったことが可能です。

インターサーバー共有ホスティング
共有ホスティング月$2.50米ドル, 最初の月$0.1米ドルプロモーションコードtryinterserver, 461クラウドアプリケーションスクリプト, 1クリックインストール.
function my_custom_add_to_cart_text( $text ) {
    if ( is_product() ) {
        $text = __( '立即购买', 'my-woocommerce-theme' );
    }
    return $text;
}
add_filter( 'woocommerce_product_single_add_to_cart_text', 'my_custom_add_to_cart_text' );

もう一つの強力なツールが「テンプレートフック」です。WooCommerceはテンプレートファイルの中に多くの機能を用意しています。 do_action これらのフックを探すことで、ページ構造の出力を正確に制御することができます。使用することができます。 remove_action 不要な要素を削除するには、以下の方法を使用してください: add_action 特定の位置に新しい要素を挿入することができます。これはテンプレートファイルを直接編集するよりも柔軟であり、特にWooCommerceプラグインを更新する際には、行った変更が簡単に上書きされることがありません。

スタイルカスタマイズとレスポンシブデザイン

WooCommerce には基本的なスタイルが用意されていますが、あなたのテーマのデザイン言語に合わせるためには、スタイルを詳細にカスタマイズすることが必要です。独立した CSS ファイルを作成することをお勧めします。例えば: woocommerce.cssそして、 functions.php 条件に応じてデータを読み込む方法は、前述の例で示されています。

スタイルカスタマイズの鍵は、WooCommerceが生成するHTML構造とCSSクラスを理解することにあります。ブラウザの開発者ツールを使って、商品リストやカートの表などの要素を確認すると、すぐに使い方を覚えることができます。WooCommerceでは、ほとんどすべての要素に豊富で意味のあるCSSクラスが付けられています。例えば… .product.woocommerce-loop-product__link.onsale その他

例えば、「特価」タグのスタイルを変更するには:

/* 在你的 woocommerce.css 中 */
.onsale {
    background-color: #ff3366;
    color: white;
    border-radius: 0;
    padding: 0.5em 1em;
    font-weight: bold;
    top: 10px;
    right: 10px;
    left: auto; /* 覆盖默认的 left: 0 */
}

レスポンシブデザインはeコマースサイトにとって非常に重要です。製品グリッドやテーブル(ショッピングカート、注文詳細など)がさまざまな画面サイズで正常に表示されるようにする必要があります。CSSのメディアクエリやFlexbox/Gridレイアウトを使用して、製品リストの表示方法を再構築してください。

@media (max-width: 768px) {
    ul.products li.product {
        width: 48%; /* 在平板设备上每行显示两个产品 */
        margin-right: 4%;
    }
    ul.products li.product:nth-child(2n) {
        margin-right: 0;
    }
}

@media (max-width: 480px) {
    ul.products li.product {
        width: 100%; /* 在手机上每行显示一个产品 */
        margin-right: 0;
    }
    /* 调整结账表单的输入框 */
    .woocommerce form .form-row {
        width: 100%;
        float: none;
        margin-right: 0;
    }
}

概要

WooCommerceのテーマ開発とは、WordPressのテーマに関する知識とeコマース特有のニーズを組み合わせるプロセスです。重要なのは、テンプレートのカバー範囲を理解し、アクションやフィルターフックを巧みに利用して柔軟な機能カスタマイズを実現することです。環境の構築、サポートの宣言、キーテンプレートの上書き、フックを使った微調整や高度なスタイルカスタマイズまで、これらすべてのステップがプロフェッショナルでユニーク、かつ効率的なオンラインストアを構築するための基盤となります。常に、サブテーマ内で開発を行い、コアテンプレートを直接変更するのではなくフックを優先的に使用することが、コードのメンテナビリティと将来の互換性を保証するための最善の方法です。

FAQ よくある質問

トピック内で製品詳細ページの要素を削除したり、並び替えたりするにはどうすればよいですか?

あなたはそれを使用することができます。 remove_action この関数は、製品の概要領域内から特定の要素を削除するためのものです。まず、その要素がどのフックを通じて追加されたのか、そしてその優先順位が何であるかを把握する必要があります。

例えば、製品タイトルを削除したい場合は、以下の手順を参照してください: plugins/woocommerce/templates/single-product/title.phpすると、それがフックを使って動作していることがわかります。 woocommerce_single_product_summary 優先度5で追加します。では、あなたのトピックについて… functions.php 以下のコードを追加するだけで、それを削除することができます:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );

並べ替えたい場合は、まずすべての関連する要素を削除し、その後希望する順序に再び追加する必要があります。または、優先順位の数字を調整することでも並べ替えが可能です。数字が小さいほど、処理が早く実行され、出力位置が上位になります。

なぜWooCommerceをアップデートした後に、私が設定したテーマの変更内容が消えてしまったのでしょうか?

もしあなたがWooCommerceプラグインのディレクトリを直接変更した場合…wp-content/plugins/woocommerce/下記のテンプレートファイルを使用すると、プラグインが更新されるたびにこれらの変更内容が上書きされてしまいます。これは絶対に推奨されない方法です。

正しい方法は、WooCommerceのテンプレートオーバーライドの仕組みに従い、変更が必要なテンプレートファイルを自分のテーマディレクトリにコピーすることです。 woocommerce/ サブフォルダ内で変更を加えてください。そうすることで、WooCommerceはあなたのテーマに含まれているバージョンを優先的に読み込み、プラグインのアップデート時にもカスタマイズした内容が影響を受けることはありません。

如何为 WooCommerce 商店页面创建一个自定义布局

ショップページのカスタムレイアウトを作成するには、最も効果的な方法はオーバーライド(覆写)することです。 archive-product.php テンプレートファイルです。このファイルのHTML構造を完全に再設計することができます。

もう一つのよりモジュール化された方法としては、フック(hook)の使用があります。ショップページのコンテンツは主に… woocommerce_before_main_contentwoocommerce_archive_descriptionwoocommerce_before_shop_loopwoocommerce_after_shop_loop フックを使用して制御を行います。デフォルトのループを削除し、これらのフックの間に自分で定義したクエリやループ構造を挿入することで、独自のグリッド、リスト、またはメーソニー(Masonry)レイアウトを実現できます。

また、WordPressのカスタマイザーを活用するか、テーマのオプションページを作成することで、ユーザーはコードを編集することなくレイアウトを切り替えることができます。

如何正确地为 WooCommerce 主题添加自定义 JavaScript

WooCommerceのテーマにカスタムJavaScriptを追加する際には、WordPressのスクリプトの実行順序を決定するためのベストプラクティスに従う必要があります。 functions.php このファイル内で使用されています。 wp_enqueue_script 関数を使用してスクリプトを登録および読み込みます。

「使用することを確認してください。」 wp_enqueue_script その際、3番目のパラメータを使用して依存関係を設定します。例えば、jQueryに依存する場合などです。WooCommerce専用のスクリプトについては、場合によっては特定のライブラリやフレームワークに依存することがあります。 wc-add-to-cart-variation(変動する製品に使用)または wc-checkout(決済ページで使用)。よろしくお願いします。 wp_localize_script 関数を使用することで、PHPの変数(AJAXのURLやサイトのアドレスなど)をJavaScriptファイルに安全に渡すことができます。

php
function my_theme_wc_scripts() {
wp_enqueue_script(
'`'my-woocommerce-script'`,
`get_template_directory_uri()` . `'https://www.likacloud.com/js/my-woocommerce.js'`,
`array('jquery', 'wc-add-to-cart-variation')`, // 依存関係の項目
'1.0.0',
true // ページのフッター部分で読み込む
);
`wp_localize_script('my-woocommerce-script', 'myWooParams', array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
) );
}
add_action( 'wp_enqueue_scripts', 'my_theme_wc_scripts' );