Debuggen, warum die vorgestellten Bilder in WooCommerce auf der Homepage nicht mehr angezeigt werden

Irgendwann haben die “Featured” -Bilder, die normalerweise auf unserer Homepage angezeigt werden, nicht mehr angezeigt.

Ich habe etwas gegraben und diesen Template-Code in index.php gefunden (das ist das Artificer- Thema von WooThemes)

Dies scheint der Code zu sein, der die vorgestellten Bilder behandelt:

  

Ich habe herausgefunden, wie ich die SQL-Abfrage für den letzten Durchlauf abrufen kann.

 SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1 AND ( ( wp_postmeta.meta_key = '_visibility' AND wp_postmeta.meta_value IN ('catalog','visible') ) AND ( mt1.meta_key = '_featured' AND mt1.meta_value = 'yes' ) ) AND wp_posts.post_type = 'product' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 3 

Natürlich, wenn ich das in phpMyAdmin ausführe, bekomme ich ein positives Ergebnisset. Warum würde dies plötzlich passieren? Wir haben vor ein paar Wochen auf WooCommerce 3.0.5 umgestellt, also frage ich mich, ob sich vielleicht etwas intern geändert hat, das aktualisiert werden muss?

Update: Wenn ich etwas mehr darüber nachdenke, habe ich festgestellt, dass dies nicht in Erfüllung geht:

 ( mt1.meta_key = '_featured' AND mt1.meta_value = 'yes' ) ) 

Sie erscheinen jedoch im WooCommerce Admin-Bereich als “vorgestellt”:

Bildbeschreibung hier eingeben

Wie entscheidet WooCommerce, ob ein Beitrag veröffentlicht wird? Mein Verständnis aus dem obigen Code ist, dass es tut:

 wp_postmeta.meta_key = "_featured" AND wp_postmeta.meta_value = "yes" 

… aber das kann nicht wp_postmeta , da buchstäblich keine Werte in der Tabelle wp_postmeta mit %featured% übereinstimmen!

UPDATE 3 : Wie vorgeschlagen, habe ich das Debugging in WP eingeschaltet, und jetzt bekomme ich das auf der Homepage:

 Notice: Undefined index: woo_enable_lightbox in /home/costumes/web/thecostumerooms.co.uk/public_html/test/wp-content/themes/artificer/includes/theme-woocommerce.php on line 274 Notice: Undefined index: woo_shop_archives_fullwidth in /home/costumes/web/thecostumerooms.co.uk/public_html/test/wp-content/themes/artificer/includes/theme-woocommerce.php on line 91 class="home blog logged-in admin-bar no-customize-support gecko alt-style-default two-col-left "> Notice: Undefined index: woo_display_store_info in /home/costumes/web/thecostumerooms.co.uk/public_html/test/wp-content/themes/artificer/index.php on line 141 Notice: Undefined index: woo_display_store_info in /home/costumes/web/thecostumerooms.co.uk/public_html/test/wp-content/themes/artificer/index.php on line 144 Notice: Undefined index: woo_display_store_info in /home/costumes/web/thecostumerooms.co.uk/public_html/test/wp-content/themes/artificer/index.php on line 167 

Das ist auf einer Vanille-Installation des neuesten WP, zusammen mit Artificer und WooCommerce (3.0.5)

Solutions Collecting From Web of "Debuggen, warum die vorgestellten Bilder in WooCommerce auf der Homepage nicht mehr angezeigt werden"

Dies sind nur WooCommerce 3.x-statementen.

Dieser Thread auf GitHub ( https://github.com/woocommerce/woocommerce/issues/14914#issuecomment-299714488 ) wurde von einem der Woo-Entwickler aktualisiert und er lieferte eine Beispielschleife und erklärte, was passiert:

Featured war Meta in 2.6, ist aber eine Taxonomie (für performance!) In 3.0 – also passen Sie Abfragen so an, dass sie tax_query anstelle von meta_query verwenden.

Um die neuen Argumente von WooThemes auf Ihr Artificer-Thema anzuwenden (schade, dass sie das Thema nicht aktualisiert haben), machen Sie Folgendes:

Für Nicht-Entwickler:

Verwenden Sie FTP, um sich bei Ihrem Host anzumelden. Es gibt viele FTP-Client-Apps, geben Sie “FTP-Clients” in Google ohne Anführungszeichen ein. Wählen Sie dann eine für Ihr Betriebssystem. Melden Sie sich mit Ihren Zugangsdaten an, die Sie beim Kauf Ihres Hosting erhalten haben. Im Allgemeinen sind dies die gleichen wie Ihr cPanel Benutzername und Passwort. Sie würden ftp.yourdomain.com . Sie werden in Ihrem public_html Verzeichnis sein. wp_content Sie dann Ihr wp_content Verzeichnis. In diesem Verzeichnis werden weitere Unterverzeichnisse wp_content , von denen eines das themes ist, in dem Sie den Verzeichnisnamen artificer . Die Datei, die die Homepage ist, ist index.php . Das ist die Datei, die Sie mit der Datei in diesem Geiste austauschen.

https://gist.github.com/carasmo/03cbbd2f70c30d0649de4ada7095a3dd

Klicke auf den Knopf “roh” und speichere (in ein Verzeichnis, das du dafür auf deinem Computer erstellst) als index.php. Öffnen Sie es nicht, es sei denn, Sie haben einen Code-Editor. Ziehen Sie es dann von Ihrem Computer in das ../wp-content/themes/artificer Verzeichnis.

Für Entwickler:

Ersetze zwei Orte, wo die Schleife $ args sind:

Schleife 1 für drei Bilder:

  $args = array( 'post_type' => 'product', 'posts_per_page' => 3, 'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ), ), ); 

Schleife 2 für das einzelne Bild

  $args = array( 'post_type' => 'product', 'posts_per_page' => 1, 'offset' => 3, 'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ), ), );