recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment corriger l'avertissement PHP : clé de tableau non définie dans le code de changement d'image de la catégorie WooCommerce en survol

<p>J'ai ce code dans le fichier function.php de mon thème enfant : </p> <pre class="brush:php;toolbar:false;">// ajouter une image de survol à la page de catégorie woo add_action( 'woocommerce_before_shop_loop_item_title', 'mem_add_on_hover_shop_loop_image' ) ; fonction mem_add_on_hover_shop_loop_image() { $image_id = wc_get_product()->get_gallery_image_ids()[0]; si ( $image_id ) { echo wp_get_attachment_image( $image_id, 'woocommerce_thumbnail' ) ; } autre { //echo wp_get_attachment_image( wc_get_product()->get_image_id() ) ; echo wp_get_attachment_image( wc_get_product()->get_image_id(), 'woocommerce_thumbnail' ); } }</pré> <p>Cela fonctionne et change les images de catégorie en survol. </p> <p>Le problème affiche une erreur PHP liée à cette ligne : </p><p> $image_id = wc_get_product()->get_gallery_image_ids()[0] ;</p> <p>L'erreur est un avertissement PHP : clé de tableau non définie 0</p> <p>Comment puis-je résoudre ce problème ? </p> <p>Merci Tamsin&Lt ;/p> ; <p>Je n'ai pas encore essayé le correctif. </p>
P粉529581199P粉529581199444 Il y a quelques jours503

répondre à tous(1)je répondrai

  • P粉011684326

    P粉0116843262023-08-27 18:00:39

    Vous pouvez d'abord vérifier si get_gallery_image_idsrenvoie un tableau. Si elle existe, vérifiez si la clé 0 (le premier élément) existe. Si tel est le cas, vous êtes libre de l’utiliser comme bon vous semble.

    ...
    
    // Get all IDs
    $idList = wc_get_product()->get_gallery_image_ids(); 
    
    // Check if the IDs are an array and key 0 (first element) exists
    if (is_array($idList) && array_key_exists(0, $idList)) {
        // Get the first element
        $image_id = $idList[0];
    
        echo wp_get_attachment_image($image_id, 'woocommerce_thumbnail' ) ; 
    } else { 
        echo wp_get_attachment_image(wc_get_product()->get_image_id(), 'woocommerce_thumbnail' ) ; 
    }
    

    modifier,

    Vous devez modifier votre fonction mem_add_on_hover_shop_loop_image avec ce code. Le code final devrait ressembler à ceci,

    add_action('woocommerce_before_shop_loop_item_title', 'mem_add_on_hover_shop_loop_image');
    function mem_add_on_hover_shop_loop_image()
    {
        // Get all IDs
        $idList = wc_get_product()->get_gallery_image_ids();
    
        // Check if the IDs are an array and key 0 (first element) exists
        if (is_array($idList) && array_key_exists(0, $idList)) {
            // Get the first element
            $image_id = $idList[0];
    
            echo wp_get_attachment_image($image_id, 'woocommerce_thumbnail');
        } else {
            echo wp_get_attachment_image(wc_get_product()->get_image_id(), 'woocommerce_thumbnail');
        }
    }
    

    répondre
    0
  • Annulerrépondre