2012-10-03 8 views
9

Io uso questo codice in PHP:Come visualizzare l'immagine della categoria Woocommerce?

$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" />'; 

Dove 147 è l'ID corrente impostato manualmente, ma ho bisogno di id corrente in altre categorie

Qualsiasi suggerire?

+1

Che cosa è esattamente il problema? Hai bisogno di recuperare l'immagine della categoria per l'id della categoria corrente senza impostarla esplicitamente? – doublesharp

+0

Scusate il mio inglese, ho bisogno di visualizzare l'immagine dalla categoria di prodotto woocommerce corrente. – MrRoman

risposta

33

Per visualizzare l'immagine categoria per la categoria attualmente visualizzata in archive-product.php, utilizzare la categoria corrente term_id quando is_product_category() è vera:

// 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' />"; 
} 
+0

Grazie per la tua risposta, ma non lavorare proprly, perché "is_category" nel modello di woocommerce è "is_product_category" e "get_query_var ('cat')" -> "cat"? Qualche suggerimento? Im usando i modelli di woocommerce per sovrascrivere il woocommerce predefinito. E sto modificando il modello product-archive.php. – MrRoman

+0

Intendi archive-product.php? Questo è il modello utilizzato per la homepage del negozio e gli archivi di tag, ad esempio '/ product-tag/TAG-NAME'. In tal caso, suppongo che tu stia cercando di ottenere l'immagine di categoria per ciascun prodotto nel ciclo? Oppure stai visualizzando una singola categoria di prodotti e hai bisogno di visualizzare l'immagine per quella categoria, ad esempio '/ categoria-prodotto/CATEGORIA'? – doublesharp

+0

Sì è/categoria-prodotto/CATEGORIA, quando creo una nuova categoria, posso caricare un'immagine dall'amministratore di woocommerce. P. D .: in spagnolo (la mia lingua madre :)) è/categoria-producto/categoria – MrRoman

2

Si può anche utilizzato ciclo foreach immagine categoria visualizzazione e ecc da categoria superiore dato per id padre.

per esempio, sto dando 74 id di categoria genitore, quindi mostrerò l'immagine dalla categoria figlio e il suo slug anche.

**<?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; ?>** 
0

Usa questo codice questo può aiutare you.i hanno superato il gatto id 17.pass woocommerce gatto id e questo è tutto

<?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">'; 
    ?> 
1

Dalla pagina 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="" />'; 
     } 
    } 
} 
0

Per mostra Woocommerce Categoria image

usare questo codice -

add_action('woocommerce_archive_description', 'woocommerce_category_image', 20); 
function woocommerce_category_image() 
{ 
    global $product; 
    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="' . esc_url($image) . '" alt="" />'; 
     } 
    } 
    } 
2

Per evitare che le immagini di categoria a schermo intero rallentare pagina verso il basso, è possibile utilizzare le immagini più piccole con 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: nome della variabile fissi e manca citazione