So beheben Sie die PHP-Warnung: Undefinierter Array-Schlüssel im WooCommerce-Kategorie-Bildwechselcode beim Hover
P粉529581199
P粉529581199 2023-08-27 00:13:53
0
1
455

Ich habe diesen Code in der Datei „functions.php“ meines untergeordneten Themes:

// Hover-Bild zur Woo-Kategorieseite hinzufügen add_action( 'woocommerce_before_shop_loop_item_title', 'mem_add_on_hover_shop_loop_image' ); Funktion mem_add_on_hover_shop_loop_image() { $image_id = wc_get_product()->get_gallery_image_ids()[0]; if ( $image_id ) { echo wp_get_attachment_image( $image_id, 'woocommerce_thumbnail' ); } anders { //echo wp_get_attachment_image( wc_get_product()->get_image_id() ); echo wp_get_attachment_image( wc_get_product()->get_image_id(), 'woocommerce_thumbnail' ); } }

Es funktioniert und wechselt die Kategoriebilder beim Schweben.

Das Problem besteht darin, dass ein PHP-Fehler im Zusammenhang mit dieser Zeile angezeigt wird:

$image_id = wc_get_product()->get_gallery_image_ids()[0] ;

Der Fehler ist PHP-Warnung: undefinierter Array-Schlüssel 0

Wie kann ich dieses Problem lösen?

Vielen Dank Tamsin

Ich habe die Lösung noch nicht ausprobiert.

P粉529581199
P粉529581199

Antworte allen (1)
P粉011684326

您可以首先检查get_gallery_image_ids是否返回一个数组。如果存在,则检查键 0(第一个元素)是否存在。如果是这样,那么您就可以随意使用它。

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

编辑,

您应该使用此代码编辑您的mem_add_on_hover_shop_loop_image函数。最终代码应如下所示,

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'); } }
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!