web-dev-qa-db-fra.com

Obtenir l'URL de vignette d'une taxonomie

Voici comment j'essaye actuellement:

$taxonomies = array( 
   'product_cat'
);
$args = array(
   'orderby'           => 'name', 
   'order'             => 'ASC',
   'hide_empty'        => false, 
   'exclude'           => array(), 
   'exclude_tree'      => array(), 
   'include'           => array(),
   'number'            => '', 
   'fields'            => 'all', 
   'slug'              => '',
   'parent'            => '',
   'hierarchical'      => true, 
   '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); /* Allways Bool(false) */

Alors la question est,

Savez-vous ce que je fais mal?

4

Les images ont été réglées par woocommerce,

Au cas où quelqu'un aurait besoin, voici comment je l'ai fait

$thumb_id = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true );
$term_img = wp_get_attachment_url(  $thumb_id );
7

Les taxonomies n'ont pas par défaut d'images miniatures. Sans savoir comment ils sont configurés, je ne peux pas dire exactement comment obtenir les vignettes, mais en ce qui concerne "qu'est-ce que je fais mal?" get_post_thumbnail_id accepte unpostID ou manquant qui assume la publication actuelle dans la boucle. Vous lui passez un term_id, qui ne fonctionnera pas. Vous pouvez voir cela dans la source:

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  }

Je suppose que si le term_id correspond à un ID de publication, vous obtiendrez quelque chose, mais ce ne sera pas ce que vous voulez ou attendez.

2
s_ha_dum

Woocommerce n'est pas nécessaire pour récupérer une image de catégorie et son 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 est un tableau avec la clé 0 égale à l'URL, 1 = largeur et 2 = hauteur.

Vous pouvez également utiliser l’un des éléments suivants à la place de la "vignette" (sélectionnée, moyenne, grande ou toute autre taille d’image personnalisée de votre thème). Cependant, 'thumbnail_id' doit rester tel quel.

Vous pouvez également récupérer des métadonnées d'image telles que "alt", "title" et plus encore en utilisant une fonction custom et l'étendre davantage.

Ce qui précède suppose que vous savez comment fournir des arguments à get_categories dans une boucle. Mais, sinon, jetez un coup d'œil à get_categories on WP pour plus de détails.

0
Dario Zadro