Erstellen Sie ein globales Array zum Vergleichen innerhalb einer Abfrage

Ich habe ein kleines Problem auf WordPress mit Woocommerce. Ich muss prüfen, ob ein einzelnes Produkt der Bestseller ist oder nicht. Also habe ich eine function erstellt, die eine Abfrage mit meta_key = ‘total_sales’ anlegt und die post_per_page = ’10’ setzt, weil ich die Top 10 Bestseller kennenlernen und ein Etikett “BEST SELLER” auf das Produkt in der Shopseite setzen und speichern möchte die Produkt-ID in einem Array. Dies ist der PHP-Code meiner function bestSellerArray ():

$post_type_query = new WP_Query( array( 'post_type' => 'product', 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'posts_per_page' => '10', 'meta_key' => 'total_sales', 'orderby' => 'meta_value_num', 'meta_query' => WC()->query->get_meta_query(), 'tax_query' => WC()->query->get_tax_query(), 'category' => '', 'operator' => 'IN', ) ); $products_ID = array(); while ($post_type_query->have_posts()){ $post_type_query->the_post(); $products_ID[] = get_the_ID(); } wp_reset_query(); return $products_ID; 

Jetzt, wenn die einzelnen Produkte im Shop angezeigt werden, muss ich vergleichen, ob die aktuelle Produkt-ID im Array ist oder nicht. Wenn ich die function bestSellerArray () innerhalb der content-product.php anrufe, die in der wp-Abfrage innerhalb der archive-product.php Anfrage sind, werde ich jedes Mal das gleiche Produkt sehen, weil die wp-Abfrage der function das Archiv-Produkt verändert .php Abfrage.

Wie kann ich das machen?

Dank an alle

Solutions Collecting From Web of "Erstellen Sie ein globales Array zum Vergleichen innerhalb einer Abfrage"

Zuerst müssen Sie sich durch die Posts bewegen, erhalten Sie alle 10 Posts, basierend auf ihrer Verkaufsnummer.

Dann müssen Sie überprüfen, ob die aktuelle Produkt-ID mit einer ID der Produkte übereinstimmt, die Sie geloopt haben.

Wenn dies der Fall ist, zeigen Sie den “Bestseller” -Tag für das Produkt an.

In deinem Code mischst du wahrscheinlich Sachen.

Ihr Code sollte etwa so aussehen:

 $post_type_query = new WP_Query( array( 'post_type' => 'product', 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'posts_per_page' => '10', 'meta_key' => 'total_sales', 'orderby' => 'meta_value_num', ) ); $products_ID = array(); while ($post_type_query->have_posts()){ $post_type_query->the_post(); $products_ID[] = get_the_ID(); } wp_reset_query(); return $products_ID; $id = get_the_ID(); if (in_array($id, $products_ID)) { echo "Best Seller"; }