cari

Rumah  >  Soal Jawab  >  teks badan

Cara membetulkan amaran PHP: kunci tatasusunan tidak ditentukan dalam kod penukaran imej kategori WooCommerce pada tuding

<p>Saya mempunyai kod ini dalam fail functions.php tema anak saya: </p> <pre class="brush:php;toolbar:false;">// tambahkan imej tuding pada halaman kategori memikat add_action( 'woocommerce_before_shop_loop_item_title', 'mem_add_on_hover_shop_loop_image'); fungsi mem_add_on_hover_shop_loop_image() { $image_id = wc_get_product()->get_gallery_image_ids()[0]; jika ($image_id) { echo wp_get_attachment_image( $image_id, 'woocommerce_thumbnail' ); } lain { //echo wp_get_attachment_image( wc_get_product()->get_image_id() ) ; echo wp_get_attachment_image( wc_get_product()->get_image_id(), 'woocommerce_thumbnail' ); } }</pre> <p>Ia berfungsi dan menukar imej kategori pada tuding. </p> <p>Masalahnya ialah menunjukkan ralat PHP yang berkaitan dengan baris ini: </p><p> $image_id = wc_get_product()->get_gallery_image_ids()[0] ;</p> <p>Ralat ialah amaran PHP: kunci tatasusunan tidak ditentukan 0</p> <p>Bagaimana saya boleh menyelesaikan masalah ini? </p> <p>Terima kasih Tamsin</p> <p>Saya belum mencuba pembaikan lagi. </p>
P粉529581199P粉529581199503 hari yang lalu535

membalas semua(1)saya akan balas

  • P粉011684326

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

    Anda boleh menyemak dahulu jika get_gallery_image_idsmengembalikan tatasusunan. Jika ia wujud, semak sama ada kekunci 0 (elemen pertama) wujud. Jika ya, maka anda bebas untuk menggunakannya mengikut kehendak anda.

    ...
    
    // 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' ) ; 
    }
    

    edit,

    Anda harus mengedit fungsi mem_add_on_hover_shop_loop_image anda dengan kod ini. Kod akhir sepatutnya kelihatan seperti ini,

    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');
        }
    }
    

    balas
    0
  • Batalbalas