web-dev-qa-db-fra.com

Comment afficher une image de la catégorie Woocommerce?

J'utilise ce code en PHP:

$idcat = 147;
$thumbnail_id = get_woocommerce_term_meta( $idcat, 'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );
echo '<img src="'.$image.'" alt="" width="762" height="365" />';

147 est l'ID actuel défini manuellement, mais j'ai besoin de l'id actuel dans d'autres catégories

Tout suggérer?

13
MrRoman

Pour afficher l'image de catégorie pour la catégorie actuellement affichée dans archive-product.php, utilisez la catégorie actuelle term_id lorsque is_product_category() est vrai:

// verify that this is a product category page
if ( is_product_category() ){
    global $wp_query;

    // get the query object
    $cat = $wp_query->get_queried_object();

    // get the thumbnail id using the queried category term_id
    $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true ); 

    // get the image URL
    $image = wp_get_attachment_url( $thumbnail_id ); 

    // print the IMG HTML
    echo "<img src='{$image}' alt='' width='762' height='365' />";
}
39
doublesharp

Vous pouvez également utiliser foreach loop pour l’affichage de l’image de catégorie et de la catégorie parent donnée par l’identifiant parent.

par exemple, je donne 74 id de catégorie parent, alors je vais afficher l'image de la catégorie enfant et sa limace aussi.

**<?php
$catTerms = get_terms('product_cat', array('hide_empty' => 0, 'orderby' => 'ASC', 'child_of'=>'74'));
foreach($catTerms as $catTerm) : ?>
<?php $thumbnail_id = get_woocommerce_term_meta( $catTerm->term_id, 'thumbnail_id', true ); 

// get the image URL
$image = wp_get_attachment_url( $thumbnail_id );  ?>
<li><img src="<?php echo $image; ?>" width="152" height="245"/><span><?php echo $catTerm->name; ?></span></li>
<?php endforeach; ?>** 

À partir de la page WooCommerce :

// WooCommerce – display category image on category archive

add_action( 'woocommerce_archive_description', 'woocommerce_category_image', 2 );
function woocommerce_category_image() {
    if ( is_product_category() ){
      global $wp_query;
      $cat = $wp_query->get_queried_object();
      $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
      $image = wp_get_attachment_url( $thumbnail_id );
      if ( $image ) {
          echo '<img src="' . $image . '" alt="" />';
      }
  }
}
2
Dampas

Pour empêcher les images de catégorie pleine taille de ralentir la page, vous pouvez utiliser des images plus petites avec wp_get_attachment_image_src():

<?php 

$thumbnail_id = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true );

// get the medium-sized image url
$image = wp_get_attachment_image_src( $thumbnail_id, 'medium' );

// Output in img tag
echo '<img src="' . $image[0] . '" alt="" />'; 

// Or as a background for a div
echo '<div class="image" style="background-image: url("' . $image[0] .'")"></div>';

?>

EDIT: Nom de variable fixe et citation manquante

2
ruttoa

Utilisez ce code, cela vous aidera peut-être.J'ai réussi l'ID de chat

   <?php
      global $woocommerce;
      global $wp_query;
      $cat_id=17;
      $table_name = $wpdb->prefix . "woocommerce_termmeta";
      $query="SELECT meta_value FROM {$table_name} WHERE `meta_key`='thumbnail_id' and woocommerce_term_id ={$cat_id} LIMIT 0 , 30";
      $result =  $wpdb->get_results($query);

      foreach($result as $result1){
          $img_id= $result1->meta_value;
      }     

      echo '<img src="'.wp_get_attachment_url( $img_id ).'" alt="category image">';
   ?>
0
Sanoj Sharma

<?php 

	$terms = get_terms( array(
	'taxonomy' => 'product_cat',
	'hide_empty' => false,
	) ); // Get Terms

foreach ($terms as $key => $value) 
{
	$metaterms = get_term_meta($value->term_id);
	$thumbnail_id = get_woocommerce_term_meta($value->term_id, 'thumbnail_id', true );
	$image = wp_get_attachment_url( $thumbnail_id );
	echo '<img src="'.$image.'" alt="" />';
} // Get Images from woocommerce term meta

?>

0
Ashish Sharma

Ajouter du code dans le chemin de boucle /wp-content/plugins/woocommerce/templates/

    <?php
        if ( is_product_category() ){

            global $wp_query;
            $cat = $wp_query->get_queried_object();    
            $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true ); 
            $image = wp_get_attachment_url( $thumbnail_id ); 
            echo "<img src='{$image}' alt='' />";
        }
    ?>
0
Kuldeep kumar