web-dev-qa-db-ja.com

archive-product.phpの変更が機能しない

私は標準のwoocommerceテーマをカスタマイズしようとしていますが、これまでのところうまく機能しています。すべてのテンプレートファイルを_/plugins/woocommerce/templates_から_/mytheme/woocommerce_にコピーし、ファイルをカスタマイズしました。

しかし、_archive-product.php_で何かを変更しても、何も起こりませんか?コアファイル(_/plugins/woocommerce/templates/archive-product.php_)でこれをカスタマイズしようとしましたが、機能しません。

_h1_見出しのクラスを変更したい:<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>

だから私はallwoocommerceテンプレートファイルを調べました、クラス_page-title_はこの1つのファイルでのみ発生します(間違ったファイルの編集を防ぐため)。

編集:

詳細には、このパスで使用されるテーマをカスタマイズしたいと思います: http://example.com/product-category/mycategory

13
Slevin

これはまだWoocommerceの問題のようです。ここに着陸した人にとっては、バージョン2.1.6の時点で次のソリューションが機能していました。

どうやら問題は、関数woocommerce_content()がアーカイブコンテンツに対して間違ったページを出力することによるものです。

私はそれを回避するために以下を使用しました:

woocommerce.phpのwoocommerce_content()を次のように置き換えます。

if ( is_singular( 'product' ) ) {
 woocommerce_content();
}else{
//For ANY product archive.
//Product taxonomy, product search or /shop landing
 woocommerce_get_template( 'archive-product.php' );
}

クレジット:解決策が見つかりました ここ

17

私は上記のすべての解決策を試しましたが、役に立ちませんでした。私が何をしたとしても、archive-product.phpはまったく使用されていませんでした。代わりに、ほとんどのwoocommerceページは私のテーマのpage.phpを使用していました。

私にとっての解決策は、テーマのサポートを追加することでした... woocommerceを使用してからしばらく経ちましたので、それを完全に忘れていました。しかし、functions.phpファイルに次の行を追加した後、archive-product.phpが使用され(/mytheme/woocommerce/archive-product.php)、更新できるようになりました。

add_theme_support('woocommerce');
26
IAteYourKitten

これが私が私の修正した方法です:

  1. テーマフォルダのwoocommerce.phpを削除します。
  2. WoocommerceプラグインディレクトリのTEMPLATEフォルダーをコピーし、THEMEフォルダーに貼り付けて、名前をwoocommerceに変更します。
  3. 名前を変更したフォルダーを開き、shopフォルダーに移動して、wrapper-start.phpとwrapper-end.phpを編集します。
9
Van Leo Adrivan

Woocommerce.phpメソッドを使用する場合、archive-productをカスタマイズすることはできません。フック方式を使用する必要があります

http://docs.woothemes.com/document/third-party-custom-theme-compatibility/ 注意:テーマのフォルダーにwoocommerce.phpを作成する場合、オーバーライドすることはできません。 woocommerce.phpはarchive-product.phpよりも優先されるため、woocommerce /archive-product.phpカスタムテンプレート。これは、表示の問題を防ぐことを目的としています。

3
user3806025

ファイル「taxonomy-product_cat.php」を編集して、条件付きis_product_category( 'mycategory')を追加する必要があります。

  1. テーマフォルダを開き、「woocommerce」という名前の新しいサブフォルダを追加します。
  2. ファイル「archive-product.php」と「taxonomy-product_cat.php」を/ plugins/woocommerce/templatesからテーマのwoocommerceサブフォルダーにコピーします。
  3. 「archive-product.php」の名前を「archive-mycategory.php」に変更します(または、これがカテゴリのテンプレートファイルになります)。
  4. 「taxonomy-product_cat.php」を開き、wc_get_template( 'archive-product.php' );を次のようにラップします。

    if (is_product_category( 'mycategory' )){
    wc_get_template( 'archive-mycategory.php' );
    

    } else {wc_get_template( 'archive-product.php'); }

2
Elad Shoham