web-dev-qa-db-ja.com

Woocommerce Category画像を表示する方法は?

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は手動で設定された現在のIDですが、他のカテゴリの現在のIDが必要です

何か提案はありますか?

20
MrRoman

現在表示されているカテゴリのカテゴリ画像を_archive-product.php_に表示するには、is_product_category()がtrueのときに現在のカテゴリ_term_id_を使用します。

_// 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' />";
}
_
45
doublesharp

また、親IDで指定された親カテゴリのカテゴリ画像などを表示するためにforeachループを使用することもできます。

たとえば、74のidの親カテゴリを指定している場合、子カテゴリの画像とそのスラッグも表示します。

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

フルサイズのカテゴリー画像がページの速度を低下させないようにするには、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>';

?>

編集:変数名と引用符の欠落を修正

3
ruttoa

get_woocommerce_term_metaは、Woo 3.6.0以降廃止されました。

変わる

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

into:($ value-> term_idはwoo category idでなければなりません)

get_term_meta($value->term_id, 'thumbnail_id', true)

詳細については、ドキュメントを参照してください: https://docs.woocommerce.com/wc-apidocs/function-get_woocommerce_term_meta.html

2
Appic SandBox

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

/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='' />";
        }
    ?>
1
Kuldeep kumar

このコードを使用すると、これが役立つ可能性があります.cat id 17.pass woocommerce cat idを渡して

   <?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