Un petit défi pour un collègue australien. Il avait le plug-in Brands pour WooCommerce mais nous aurions aimé pouvoir filtrer sur les marques ainsi que d'avoir des archives par marques.
Dans un premier temps, nous allons créer l'attribut "Brands" ou "Marques" dans WooCommerce et nous allons cocher "Activer les archives"
Ensuite nous allons installer le plug-in Taxonomy Images et aller activer sur "Produit Brands".
J'ai ensuite créer une simple page Brands ou Marques et ajouter sur celle-ci un code bloc avec :
<?php $args = array( 'taxonomy' => 'pa_brands', 'term_args' => array( 'hide_empty' => false, ) ); $terms = apply_filters( 'taxonomy-images-get-terms', '', $args ); foreach ($terms as $term){ $archive_link = get_term_link( $term->slug, 'pa_brands' ); $image_attributes = wp_get_attachment_image_src( $term->image_id, 'thumbnail' ); $html = '<div class="mr-brand"><a href="' . $archive_link . '">'; $html .= '<option>' . $term->name . '</option>'; if ( $image_attributes ) { $html .= '<img src="' . $image_attributes[0] . '" width="' . $image_attributes[1] . '" height="' .$image_attributes[2] . '" />'; } $html .= '</div></a>'; echo $html; } ?>
Nous récupérons donc toutes nos marques à l'intérieur d'une div qui a le lien vers l'archive de la marque ainsi que l'image que nous avons pu insérer avec le plug-in.
N'oubliez pas de faire un template ou de configurer votre template de catégorie sur cette taxonomie. Petite note : l'utilisation des taxonomies d'attributs dans WooCommerce doit être précédées de pa_.
Pour terminer nous allons peut-être aussi vouloir récupérer nos marques sur les produits (single). Voici la fonction à utiliser dans un bloc de code :
<?php global $product; $rmbrands = $product->get_attribute( 'pa_brands' ); echo '<div class="rm-brands">Brand: ' . $rmbrands . '</div>'; $mytaxonomy = 'pa_brands'; $post_id = get_the_ID(); $terms = wp_get_post_terms( $post_id, $mytaxonomy ); // Terms for this post $custom_taxonomy_images = get_option( 'taxonomy_image_plugin' ); // Plugin images data if ( empty( $terms ) ) return; // If no terms found, we exit. echo '<div class="rm-brands-container">'; // Loop through each term in this post for the defined taxonomy foreach( $terms as $term ) { $attachment_id = $custom_taxonomy_images[intval($term->term_id)]; // Get image Attachement ID $image = wp_get_attachment_image( $attachment_id, 'thumbnail' ); // Get image to be displayed $url = get_term_link( $term->term_id, $taxonomy ); // Get term URL ?> <div class=”rm-brands-image”> <a href="<?php echo $url; ?>"><?php echo $image; ?> </div> <?php } echo '</div>'; ?>
Sorry. No data so far.