Получение URL-адреса миниатюры таксономии


Вот как я сейчас пытаюсь:

$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) */

Итак, вопрос в том,

Знаете ли вы, что я делаю не так?

Author: Toni Michel Caubet, 2015-05-20

4 answers

Изображения, установленные woocommerce,

На случай, если кому-то понадобится, вот как я это сделал

$thumb_id = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true );
$term_img = wp_get_attachment_url(  $thumb_id );
 12
Author: Toni Michel Caubet, 2015-05-21 07:26:26

Таксономии по умолчанию не содержат миниатюр изображений. Не зная, как они установлены, я не могу точно сказать, как получить миниатюры, но что касается "что я делаю не так?" get_post_thumbnail_id принимает сообщение Идентификатор или его отсутствие, который предполагает текущую запись в цикле. Вы передаете ему term_id, что не сработает. Вы можете видеть это в источнике:

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  }

Я полагаю, что если term_id совпадет с идентификатором сообщения, вы получите что-то, но это будет не то, что вы хотите или ожидаете.

 2
Author: s_ha_dum, 2015-05-20 16:08:06

Woocommerce не требуется для получения изображения категории и его 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 - это массив с ключом 0, равным URL, 1 = ширина и 2 = высота.

Вы также можете использовать любое из следующих изображений вместо "миниатюры" (рекомендуемое, среднее, большое или любое другое изображение пользовательского размера из вашей темы). Однако "идентификатор миниатюры" должен оставаться таким, как есть.

Вы также можете получить метаданные изображения, такие как "alt", "заголовок" и другие, используя пользовательскую функцию и расширьте это еще больше.

Вышесказанное предполагает, что вы знаете, как предоставлять аргументы для получения категорий в цикле. Но, если нет, взгляните на get_categories в WP для получения более подробной информации.

 0
Author: Dario Zadro, 2019-01-29 19:38:57
<?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">Sale</div>
                              <!--<div class="icon-new-label new-right">New</div>-->
                              <div class="pr-img-area"> <img class="first-img" src="<?php echo $term_img;?>" alt=""> <img class="hover-img" src="<?php echo $term_img;?>" alt=""> </div>
                            </div>
                            <div class="item-info">
                              <div class="info-inner">
                                <div class="item-title"> <a title="Ipsums Dolors Untra" href="<?php echo get_term_link( $wcatTerm->slug, $wcatTerm->taxonomy ); ?>"><?php echo $wcatTerm->name; ?></a> </div>
                              </div>
                            </div>
                          </div>
                        </div>

                 <?php endforeach;  ?>
 -2
Author: Purnendu Sarkar, 2018-02-20 08:29:37