Ottenere l'URL della miniatura di una tassonomia

20 mag 2015, 18:38:57
Visualizzazioni: 39K
Voti: 6

Ecco come sto provando attualmente:

$taxonomies = array( 
   'product_cat'
);
$args = array(
   'orderby'           => 'name', // ordina per nome
   'order'             => 'ASC',
   'hide_empty'        => false, // mostra categorie vuote
   'exclude'           => array(), 
   'exclude_tree'      => array(), 
   'include'           => array(),
   'number'            => '', 
   'fields'            => 'all', 
   'slug'              => '',
   'parent'            => '',
   'hierarchical'      => true, // mostra struttura gerarchica
   'child_of'          => 0,
   'childless'         => false,
   'get'               => '', 
   'name__like'        => '',
   'description__like' => '',
   'pad_counts'        => false, 
   'offset'            => '', 
   'search'            => '', 
   'cache_domain'      => 'core'
); 

$terms = get_terms($taxonomies, $args);
$print_terms = 0;
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
   foreach ( $terms as $term ) {
     $term_img = wp_get_attachment_url( get_post_thumbnail_id($term->term_id) );
     var_dump($term_img); /* Restituisce sempre Bool(false) */

Quindi la domanda è,

Sapete cosa sto facendo di sbagliato?

0
Tutte le risposte alla domanda 5
3
16

Le immagini sono state impostate da WooCommerce,

Nel caso qualcuno ne avesse bisogno, ecco come l'ho fatto (nel 2015)

$thumb_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
$term_img = wp_get_attachment_url(  $thumb_id );
21 mag 2015 10:26:26
Commenti

+1000% :) grazie

Hayden Thring Hayden Thring
22 mag 2019 09:05:48

ha funzionato davvero amico :)

Krupal Panchal Krupal Panchal
22 gen 2021 14:47:42

get_woocommerce_term_meta() è ora deprecata. Dovresti usare get_term_meta() invece :)

adamalexanderw adamalexanderw
4 lug 2022 13:29:01
1

Le tassonomie non hanno per impostazione predefinita immagini in miniatura. Senza sapere come queste sono impostate non posso dire esattamente come ottenere le miniature, ma per quanto riguarda "cosa sto sbagliando?" get_post_thumbnail_id accetta un ID di un post o, in mancanza di quello, assume il post corrente nel Loop. Tu gli stai passando un term_id, che non funzionerà. Puoi vederlo nel sorgente:

32  function get_post_thumbnail_id( $post_id = null ) {
33          $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
34          return get_post_meta( $post_id, '_thumbnail_id', true );
35  }

Suppongo che, se il term_id corrisponde per caso a un ID di post, otterresti qualcosa, ma non sarà ciò che vuoi o ti aspetti.

20 mag 2015 19:08:06
Commenti

Hai ragione, controlla la mia risposta!

Toni Michel Caubet Toni Michel Caubet
21 mag 2015 11:31:28
2

La risposta accettata non è più valida poiché woocommerce_get_term_meta è deprecato. Inoltre non esiste più un campo meta chiamato thumbnail_id. Ecco la soluzione corretta per il 2021 se stai utilizzando WooCommerce:

$term_image_id = get_term_meta( $term->term_id, 'product_search_image_id', true ); $term_image = wp_get_attachment_url( $term_image_id );

10 mar 2021 08:48:10
Commenti

Quindi oggi sarebbe una domanda diversa, giusto?

Toni Michel Caubet Toni Michel Caubet
11 mag 2022 11:49:22

No, la tua domanda era come ottenere l'URL della miniatura di una tassonomia, questo è il modo per farlo con l'ultima versione.

RiotAct RiotAct
1 ago 2022 22:10:40
0

Non è necessario WooCommerce per recuperare l'immagine di una categoria e il suo URL.

$categories = get_categories();

foreach($categories as $cat) {

    $image_id = get_term_meta( $cat->term_id, 'thumbnail_id', true );
    $post_thumbnail_img = wp_get_attachment_image_src( $image_id, 'thumbnail' );

    echo '<img src="' . $post_thumbnail_img[0] . '" alt="' . $cat->name . '" />';

}

$post_thumbnail_img è un array con la chiave 0 uguale all'URL, 1 = larghezza, e 2 = altezza.

Puoi anche utilizzare uno dei seguenti valori al posto di 'thumbnail' (featured, medium, large, o qualsiasi altra dimensione personalizzata dell'immagine del tuo tema). Tuttavia, 'thumbnail_id' deve rimanere così com'è.

Puoi anche recuperare metadati dell'immagine come "alt", "title" e altro utilizzando una funzione personalizzata e estendere ulteriormente questo esempio.

Quanto sopra presuppone che tu sappia come fornire argomenti a get_categories in un loop. Ma, in caso contrario, dai un'occhiata a get_categories su WP per maggiori dettagli.

29 gen 2019 21:38:57
1
-2
<?php
            $wcatTerms = get_terms('product_cat', array('hide_empty' => 0, 'parent' =>0));

            foreach($wcatTerms as $wcatTerm) : ?>
            <?php
            $thumb_id = get_woocommerce_term_meta( $wcatTerm->term_id, 'thumbnail_id', true );
            $term_img = wp_get_attachment_url(  $thumb_id );
            ?>

                        <div class="product-item">
                          <div class="item-inner fadeInUp">
                            <div class="product-thumbnail">
                              <div class="icon-sale-label sale-left">Sconto</div>
                              <!--<div class="icon-new-label new-right">Nuovo</div>-->
                              <div class="pr-img-area"> <img class="first-img" src="<?php echo $term_img;?>" alt="Miniatura categoria prodotto" title="Miniatura categoria prodotto"> <img class="hover-img" src="<?php echo $term_img;?>" alt="Miniatura categoria prodotto al passaggio del mouse" title="Miniatura categoria prodotto al passaggio del mouse"> </div>
                            </div>
                            <div class="item-info">
                              <div class="info-inner">
                                <div class="item-title"> <a title="<?php echo $wcatTerm->name; ?>" href="<?php echo get_term_link( $wcatTerm->slug, $wcatTerm->taxonomy ); ?>"><?php echo $wcatTerm->name; ?></a> </div>
                              </div>
                            </div>
                          </div>
                        </div>

                 <?php endforeach;  ?>
20 feb 2018 10:29:37
Commenti

questo è praticamente un duplicato della mia risposta... ma grazie

Toni Michel Caubet Toni Michel Caubet
20 feb 2018 10:42:09