0

私はテーマを開発していますが、何らかの理由でパンくずリストのデフォルトの位置を woocommerce テーマの上に移動する必要があります。次に、functions.php で次のようなことを行うことに気付きました。

function woocommerce_remove_breadcrumb(){
    remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);
}
add_action('woocommerce_before_main_content', 'woocommerce_remove_breadcrumb');

function woocommerce_custom_breadcrumb(){
    woocommerce_breadcrumb();
    }
add_action( 'woo_custom_breadcrumb', 'woocommerce_custom_breadcrumb' );

そして、任意のテンプレート ファイルで、パンくずリストを次のように出力します。

<? do_action('woo_custom_breadcrumb'); ?>

そして動作します。私の質問は以上です。これは、このようなものに対する正しいアプローチですか? ブレッドクラムだけでなく、ピス、評価、タイトル、ボタン、サイドバーなど、ウーコマースに関するすべてのことを意味します。私が考えているのは、woocommerce テンプレートにもっと深いコードが付属していない理由です。つまり、関数にフックするのではなく、タイトル、カテゴリ、コンテンツ、画像などの順序を簡単に変更できる single-content-loop.php テンプレートがないのはなぜですか?

4

1 に答える 1

0

ブレッドクラムを明示的に呼び出すには、これが受け入れられる方法だと思います。周囲のすべてを削除するよりも、特定の関数を呼び出す方が簡単な場合があります。

物事の順序を変更し、高度なカスタマイズを行うことに関しては; 単一のファイルではなく、多数のファイルが連携して動作します。テーマのルートに「woocommerce」というフォルダーを作成し、安全なオーバーライドのために次のファイルをコピーします。

woocommerce/woocommerce-hooks.php :

テーマの functions.php でオーバーライドしているフックを含め、フックは次のとおりです。ここで、製品ページの特定の要素を削除したり、再配置したりできます。「Sidebar」を検索すると、「woocommerce_sidebar」アクションが参照する関数とともに追加された場所が表示されます...

woocommerce/woocommerce-template.php :

条件ステートメントに基づいてコンテンツを出力するためにテンプレート ファイルで使用される関数を次に示します。たとえば、「単品」シリーズを検索すると、どのテンプレート ファイルがどの機能に使用されているかがわかります。たとえば、'woocommerce_template_single_title' は 'single-product/title.php' を使用します。このフォルダーとファイルをコピーすると、タイトル セクションだけに非常に具体的な編集を加えることができます。

これら 2 つのファイルとそれに付随する参照 (title.php など) の間で、説明したことを実行できると思います。それがどのように機能するか教えてください!私もwoocommerceは初めてです!

于 2013-11-17T22:32:57.313 に答える