wake-up-neo.com

Wie wird das Bild der Woocommerce-Kategorie angezeigt?

Ich verwende diesen Code in 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" />';

Dabei ist 147 die aktuelle ID manuell eingestellt, aber ich muss die aktuelle ID in anderen Kategorien eingeben

Irgendwelche Vorschläge?

13
MrRoman

Um das Kategoriebild für die aktuell angezeigte Kategorie in archive-product.php anzuzeigen, verwenden Sie die aktuelle Kategorie term_id, wenn is_product_category() wahr ist:

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

Sie können auch foreach eine Schleife für das Anzeigekategorienbild usw. von der übergeordneten Kategorie verwenden, die von der übergeordneten ID angegeben wird.

zum Beispiel gebe ich 74 ID der übergeordneten Kategorie, dann werde ich das Bild aus der untergeordneten Kategorie und auch dessen Slug anzeigen.

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

get_woocommerce_term_meta ist seit Woo 3.6.0 depriziert.

also ändere

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

into: ($ value-> term_id sollte woo category id sein)

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

einzelheiten finden Sie in den Dokumenten: https://docs.woocommerce.com/wc-apidocs/function-get_woocommerce_term_meta.html

2
Appic SandBox

Von der WooCommerce-Seite :

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

Um zu verhindern, dass Kategoriebilder in voller Größe blättern, können Sie kleinere Bilder mit wp_get_attachment_image_src() verwenden:

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

?>

BEARBEITEN: Fixierter Variablenname und fehlendes Anführungszeichen

2
ruttoa

Verwenden Sie diesen Code, um Ihnen zu helfen. Ich habe die Cat-ID 17 übergeben. Woocommerce-Cat-ID übergeben und das ist sie

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

Fügen Sie Code in /wp-content/plugins/woocommerce/templates/-Schleifenpfad hinzu

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