32

WooCommerce は初めてです。とにかく、自分のテーマを作成したいので、ガイドラインに従い、コア テンプレート ファイル全体を/mywordpresstheme/woocommerce/にコピーしました。

それはすべてうまく機能し、テンプレートをうまく編集しています。

しかし、WooCommerce でフックとアクションが機能する方法には困惑しており、生成された HTML の特定の部分がどこから来ているのかわかりません。

たとえば、content-product.phpには、画像を取得するフックがあります。

<?php
/*
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
?>

しかし、これは何ですか?それはどこから来たのですか??編集目的で生成された HTML をどこで見つけることができるかについて、アクション名に何か手がかりはありますか?

WooCommerce の「フックとフィルター」に関する記事を読みましたが、ケースバイケースでこれらを変更する場所や方法については何も説明されていません。

どんな助けでも大歓迎です。

私はこのシステムに不慣れで、非常に明白な何かを見落としているだけだと確信しています。

ありがとう、マイキー。

4

1 に答える 1

59

しかし、これは何ですか?それはどこから来たのですか??編集目的で生成された HTML をどこで見つけることができるかについて、アクション名に何か手がかりはありますか?

これはaction hook. 言うまでもなく、それ自体は何もしていませんが、コメントにリストされている関数が含まれてhookいるため、この関数がトリガーされたときに実行されます。コメントにwoocommerce_template_loop_product_thumbnailは、関数はサムネイルの取得を担当する関数であると書かれています。この関数は、Woocommerce プラグイン内にあります。Sublime Text エディターを使用して (他の人もこれを行うと思いますが)、フォルダー全体でそのフレーズを検索すると、それがどのファイルにあるかが正確にわかります。この場合、それはプラグ可能関数と呼ばれるものであり、woocommerce-template.php. (バージョン 2.1+ では wc-template-hooks.php と呼ばれるようになりました)

プラグ可能な関数とは、テーマの functions.php で同じ名前の新しいバージョンの関数を定義することを意味します

function woocommerce_template_loop_product_thumbnail(){
  echo "apple";
}

上記を functions.php に入れると、Woo の代わりにwoocommerce_template_loop_product_thumbnail()apple という単語が表示されるだけです。

WooCommerce の「フックとフィルター」に関する記事を読みましたが、ケースバイケースでこれらを変更する場所や方法については何も説明されていません。

すべての変更はテーマの functions.php で行います。ケースバイケースで行う必要はありません。すべてのフックとフィルターは同じように動作します。とはいえ、それらは習得するのが最も簡単なことではないので、自分自身に忍耐を持ってください. フィルターは、頭を包み込むのが特に難しいことがわかりました。

根拠のない自己宣伝の場で、WordPress のフックとフィルターの基本に関する一連の記事を書きました(1 つの記事ではテーマ別フックに関するものだと書かれていますが、フックはフックです!)。 WordPress のキャリアを始めたばかりの私。

于 2013-01-20T01:32:56.240 に答える