Supprimer l'image d'espace réservé de catégorie de produit dans Woocommerce

Richard Mišenčík

J'essaie de me débarrasser des images de catégorie de produit d'espace réservé sur la page de la boutique.

En ce moment, j'utilise ce code pour ajouter une classe .no-image aux produits qui n'ont pas d'image afin que je puisse les styliser différemment. Cela fonctionne très bien, je veux faire la même chose pour les catégories.

function before_imageless_product() {
if( !has_post_thumbnail( get_the_id() ) ){
    remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_category_thumbnail', 10 );
    echo '<div class="no-product-image">';
}
}
add_action( 'woocommerce_before_shop_loop_item', 'before_imageless_product', 9 );

function after_imageless_product() {
if( !has_post_thumbnail( get_the_id() ) ){
    add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_category_thumbnail', 10 );
    echo '</div>';
}
}
add_action( 'woocommerce_after_shop_loop_item', 'after_imageless_product', 9 );

J'ai essayé de modifier le code pour détecter les catégories mais je ne peux pas le faire fonctionner. Qu'est-ce que je fais mal?

function before_imageless_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( !$thumbnail_id ){
        remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_category_thumbnail', 10 );
        echo '<div class="no-category-image">';
    }
}
add_action( 'woocommerce_before_shop_loop_item', 'before_imageless_category', 9 );

function after_imageless_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( !$thumbnail_id ){
        add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_category_thumbnail', 10 );
        echo '</div>';
    }

}
add_action( 'woocommerce_after_shop_loop_item', 'after_imageless_category', 9 );
LoicTheAztec

Pour que cela fonctionne pour les catégories de produits en supprimant l'image d'espace réservé et en ajoutant un <div>conteneur personnalisé , cela doit être fait différemment car les catégories de produits utilisent content_product_cat.phpun modèle spécifique:

add_action( 'woocommerce_before_subcategory', 'before_imageless_category', 9, 1 );
function before_imageless_category( $category ) {
    if( ! get_woocommerce_term_meta( $category->term_id, 'thumbnail_id', true ) ) {
        echo '<div class="no-category-image">';
    }
    remove_action('woocommerce_before_subcategory_title', 'woocommerce_subcategory_thumbnail', 10 );
    add_action('woocommerce_before_subcategory_title', 'custom_subcategory_thumbnail', 10, 1 );
}

add_action( 'woocommerce_after_subcategory', 'after_imageless_category', 11, 1 );
function after_imageless_category( $category ) {
    if( ! get_woocommerce_term_meta( $category->term_id, 'thumbnail_id', true ) ) {
        echo '</div>';
    }
}

function custom_subcategory_thumbnail( $category ) {
    $small_thumbnail_size = apply_filters( 'subcategory_archive_thumbnail_size', 'woocommerce_thumbnail' );
    $dimensions           = wc_get_image_size( $small_thumbnail_size );
    $thumbnail_id         = get_woocommerce_term_meta( $category->term_id, 'thumbnail_id', true );

    if ( $thumbnail_id ) {
        $image        = wp_get_attachment_image_src( $thumbnail_id, $small_thumbnail_size );
        $image        = $image[0];
        $image_srcset = function_exists( 'wp_get_attachment_image_srcset' ) ? wp_get_attachment_image_srcset( $thumbnail_id, $small_thumbnail_size ) : false;
        $image_sizes  = function_exists( 'wp_get_attachment_image_sizes' ) ? wp_get_attachment_image_sizes( $thumbnail_id, $small_thumbnail_size ) : false;
    } else {
        return;
    }

    if ( $image ) {
        // Prevent esc_url from breaking spaces in urls for image embeds.
        // Ref: https://core.trac.wordpress.org/ticket/23605.
        $image = str_replace( ' ', '%20', $image );

        // Add responsive image markup if available.
        if ( $image_srcset && $image_sizes ) {
            echo '<img src="' . esc_url( $image ) . '" alt="' . esc_attr( $category->name ) . '" width="' . esc_attr( $dimensions['width'] ) . '" height="' . esc_attr( $dimensions['height'] ) . '" srcset="' . esc_attr( $image_srcset ) . '" sizes="' . esc_attr( $image_sizes ) . '" />';
        } else {
            echo '<img src="' . esc_url( $image ) . '" alt="' . esc_attr( $category->name ) . '" width="' . esc_attr( $dimensions['width'] ) . '" height="' . esc_attr( $dimensions['height'] ) . '" />';
        }
    }
}

Le code va dans le fichier function.php de votre thème enfant actif (ou thème actif). Testé et fonctionne.

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Remplacer l'image d'espace réservé WooCommerce en fonction de la catégorie de produit

WooCommerce affiche l'image d'espace réservé lors de l'utilisation de get_image ()

Frais d'article de panier progressifs en fonction de l'état et de la catégorie de produit dans Woocommerce

Définir un terme de catégorie de produit dans un produit sur Woocommerce

Déplacer la description de la catégorie de produit après l'affichage des produits de catégorie dans Woocommerce

Woocommerce - supprimer un produit de la catégorie

Supprimer le bouton Ajouter un panier dans Woocommerce pour une catégorie de produit spécifique

Résumez dans une catégorie d'espace réservé et explorez pour plus de détails

woocommerce obtenir l'identifiant de la catégorie de produit

Obtenir l'image de la catégorie "principale" du produit WooCommerce

Afficher l'image sous le prix du produit en fonction de la catégorie de produit sur la boutique WooCommerce et les pages d'archives

Obtenez le nom de catégorie d'un produit WooCommerce en utilisant l'identifiant du produit ou l'identifiant de la catégorie

Nombre d'articles du panier personnalisé par catégorie de produit dans Woocommerce 3

Modifier le texte d'un bouton de produit spécifique dans une page de catégorie de produit Woocommerce

Modifier le texte d'un bouton de produit spécifique dans une page de catégorie de produit Woocommerce

Remplacer l'image du produit par un espace réservé basé sur les rôles des utilisateurs dans WooCommerce

Obtenez des valeurs d'attribut de produit spécifiques pour une catégorie de produit spécifique dans Woocommerce

Utilisation d'un modèle de produit unique personnalisé pour une catégorie de produit spécifique dans Woocommerce

Woocommerce: Widget de catégorie de produit

SharePoint Online - Personnalisation de la colonne Personnes - Supprimer l'image d'espace réservé sur un champ vide

WooCommerce - Supprimer le titre du produit du fil d'Ariane mais conserver tous les hyperliens de catégorie

Obtenez également l'ID de miniature de catégorie de produit WooCommerce à l'aide d'une requête SQL

Comment ajouter une image à un espace réservé d'image ajouté dans pptx à l'aide de l'API Apache POI?

Mise à jour en direct du nombre d'articles dans le panier de catégorie de produit sans rechargement dans Woocommerce

Afficher un nom d'article de commande de catégorie de produit basé sur du texte personnalisé dans Woocommerce merci

WooCommerce ; Supprimer l'image du produit de la page de la boutique et de la page d'un seul produit

Variante de produit WP_Query avec une catégorie de produit dans Woocommerce

Autoriser un seul achat de produit pour une catégorie de produit spécifique dans Woocommerce

Requête par catégorie de produit, tags de produit et prix dans Woocommerce

TOP liste

  1. 1

    Comment exécuter un fichier python avec des droits d'administrateur dans pycharm

  2. 2

    obtenir le nombre de marqueur affiché sur la carte

  3. 3

    comment obtenir un objet de requête dans les tests unitaires de django?

  4. 4

    Microsoft.WebApplication.targets

  5. 5

    Exécuter la requête externe pour chaque date obtenue à partir de la requête interne

  6. 6

    comment convertir une chaîne en un tuple dateutil jour de la semaine sans utiliser eval

  7. 7

    Dans les modèles Hugo, comment vérifier la longueur du tableau de fichiers JSON?

  8. 8

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  9. 9

    Comment ajouter un texte dans un texte Python/Tkinter

  10. 10

    mongo kafka connect source

  11. 11

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  12. 12

    Recherche de dicton Jinja2 à l'aide d'une clé variable

  13. 13

    Vérifier la longueur du nombre à partir du message, puis utiliser la valeur dans l'instruction

  14. 14

    Laravel 8: Attempt to read property "id" on null

  15. 15

    Comment obtenir tous les champs d'un objet (y compris sa superclasse), à l'aide de l'API Mirrors de Dart?

  16. 16

    Comment convertir une chaîne en tuple en utilisant `reads`?

  17. 17

    Aide de variable de débogage pprint jinja2

  18. 18

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  19. 19

    mauvaise valeur pour le type long: - Postgresql, Hibernate, Spring

  20. 20

    définir une propriété pour chaque nœud dans neo4j

  21. 21

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

chaudétiquette

Archive