it-swarm.com.de

get_term_link () liefert korrekt - aber unlogische Fehlermeldungen stören

Ich habe ein wirklich seltsames Problem mit Wordpress und der get_the_link () - Funktion und ein folgendes Problem mit Objekten, die Objekte sind, aber als Nicht-Objekt-Fehler identifiziert wurden, selbst funktionieren sie.

Zuerst der get_term_link () Issue:

Wenn ich mit einer normalen Nummer und Taxonomie frage, funktioniert es gut: $tax_name = 'products'; print get_term_link(13, $tax_name);

Es gibt die URL zurück, aber wenn ich es wie folgt mache: $tax_id = (int)$navItem['id']; $tax_name = 'products'; print get_term_link($tax_id , $tax_name);

Ich habe die Fehlermeldung bekommen:

Abfangbarer schwerwiegender Fehler: Objekt der Klasse WP_Error konnte in /home/username/www/domainname/wp-content/themes/theme/sidebar-left.php in Zeile 89 nicht in einen String konvertiert werden

Welche letzte Zeile war 89. (var_dump von tax_id war int (13) )

Ohne das (int) vor dem navItem ['id] ergab var_dump string (2) .

Versuchte dies auch mit einer get_term_by () - Funktion als Quelle. $term = get_term_by('id', $navItem['id'], $tax_name); $tax_id = $term->term_id; var_dump($tax_id); $tax_name = 'products'; print get_term_link($tax_id , $tax_name);

Bekam eine neue Fehlermeldung als zusätzliche:

Hinweis: Es wird versucht, die Eigenschaft eines Nicht-Objekts in /home/username/www/domainname/wp-content/themes/theme/sidebar-left.php in Zeile 88 abzurufen

Was ist los, denn Zeile 88 lautet in diesem Beispiel "$ tax_id = $ term-> term_id;"! Ich kann (int) benutzen, aber das ändert nichts an der Fehlermeldung.

Das Lustige ist, dass die Variable $ term ein Objekt ist. Und diese Fehlermeldung erklärt mir, dass ich versuche, eine Eigenschaft von einem Nicht-Objekt abzurufen. Wenn ich dieses Objekt in ein Array konvertiere (get_object_vars () - function) und wie ein Array auf die Werte im Array zugreife (name [key])

Ich erhalte folgende Fehlermeldung:

get_object_vars () erwartet, dass Parameter 1 ein Objekt ist, null in Zeile 86

Ich habe versucht, sie in Integer und dann in String umzuwandeln. Versucht, Schnecke anstelle von ID zu verwenden. Aber nichts hat funktioniert. Die Ergebnisse funktionieren!

Ja! Alle angezeigten Zeilen geben die korrekte Link-URL zurück!

Aber ich bekomme diese Fehlermeldung ... und ich verstehe nicht warum. Weil ... sie für mich völlig unlogisch sind. Aber ich denke oder mehr, ich hoffe, dass ich der unlogische Teil dieses Problems bin und jemand mir helfen kann, dies zu lösen/zu verstehen.

Und NEIN ... Ich möchte die Fehlermeldungen nicht ein- oder ausblenden.

1
Sascha

get_term_link() gibt bei Fehlern ein WP_Error-Objekt zurück .

Sie können kein Objekt oder Array print oder Sie erhalten Nachrichten, die denen ähneln, die Sie erhalten. Verwenden Sie stattdessen var_dump() oder print_r() und Sie sollten sehen, was passiert. Ihr Fehler sagt Ihnen sogar, dass WP_Error das betreffende Objekt ist.

Sie erhalten Fehler, wenn der gesuchte Begriff nicht gefunden wird.

Und ja, Sie sollten Ihre Fehlermeldungen auf einer Produktionsstätte verbergen. Sie können aufschlussreich sein. Schreiben Sie in ein Protokoll, wenn am Produktionsstandort Fehler auftreten müssen.

1
s_ha_dum