J'essaie de personnaliser mon thème enfant WooCommerce avec le thème parent Storefront. Le thème parent crée un modèle de produit unique (content-single.php) comme suit:
/**
* @hooked storefront_post_header - 10
* @hooked storefront_post_meta - 20
* @hooked storefront_post_content - 30
*/
do_action( 'storefront_single_post' );
et ces fonctions sont reliées pour construire la page (/inc/structure/hooks.php):
add_action( 'storefront_single_post', 'storefront_post_header', 10 );
add_action( 'storefront_single_post', 'storefront_post_meta', 20 );
add_action( 'storefront_single_post', 'storefront_post_content', 30 );
Pour référence, il s’agit de storefront_post_header function (inc/structure/post.php):
if ( ! function_exists( 'storefront_post_header' ) ) {
/**
* Display the post header with a link to the single post
* @since 1.0.0
*/
function storefront_post_header() { ?>
<header class="entry-header">
<?php
if ( is_single() ) {
storefront_posted_on();
the_title( '<h1 class="entry-title" itemprop="name headline">', '</h1>' );
} else {
if ( 'post' == get_post_type() ) {
storefront_posted_on();
}
the_title( sprintf( '<h1 class="entry-title" itemprop="name headline"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h1>' );
}
?>
</header><!-- .entry-header -->
<?php
}
Je veux sortir ma fonction, storefront_post_header_categories (ci-dessous), après storefront_post_header . Je pensais pouvoir ajouter les éléments suivants à mon thème enfant, functions.php, pour le faire:
add_action( 'storefront_single_post', 'storefront_post_header_categories', 15 );
function storefront_post_header_categories() {
echo "code to display categories here";
}
Cela ne fonctionne pas, ou rien en sortie sur le front-end. N'est pas non plus donner une erreur WP_DEBUG.
Qu'est-ce que je fais mal? Merci pour votre aide et laissez-moi savoir si vous avez besoin de plus d'informations.
le crochet storefront_single_post concerne uniquement les articles uniques et non les produits, bien que les produits soient considérés comme des articles de type 'produit'.
C'est le crochet dont vous avez besoin:
add_action( 'woocommerce_single_product_summary', 'storefront_post_header_categories', 6 );
function storefront_post_header_categories() {
echo "code to display categories here";
}
Vous le trouverez dans plugins/woocommerce/content-single-product.php:
/**
* woocommerce_single_product_summary hook
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
do_action( 'woocommerce_single_product_summary' );