web-dev-qa-db-ja.com

WooCommerce-フックによって生成されたHTMLはどこで編集できますか?

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の「フックとフィルター」に関する記事を読みましたが、ケースごとにこれらをどこでどのように変更するかについては説明していません。

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

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

ありがとう、マイキー。

27

しかし、これは何ですか?それはどこから来たのですか??アクション名に、編集する目的で生成される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()の代わりに、Word Appleが表示されるだけです。

私はWooCommerceの「フックとフィルター」に関する記事を読みましたが、ケースごとにこれらをどこでどのように変更するかについては説明していません。

テーマのfunctions.phpですべての変更を行います。ケースバイケースで行う必要はありません。すべてのフックとフィルターは同じように動作します。とは言うものの、彼らは学ぶのが最も簡単なものではないので、あなた自身に忍耐を持ってください。フィルターを使うのは特に難しいと感じました。

無償の自己宣伝のスポットで、私は WordPressフックとフィルターの基本 (テーマ別のフックに関する記事ですが、フックはフックです!)それは、人々が私のWordPressキャリアの始めに私に言っていたことを望んでいるすべてのものです。

53
helgatheviking