Überprüfen der Rückgabe mit WP Fehler

Ich habe andere Leute mit ähnlichen Problemen gesehen, und ich weiß, dass ich die Rückgabe überprüfen muss, wenn ich die untergeordneten Elemente in meiner benutzerdefinierten Taxonomie “hhie_artists” anrufe. Ich bin mir nicht sicher, wie ich meine Ausgabe wiedergeben soll, um wp_error zu integrieren. Hier ist mein Code:

  0, 'orderby' => 'slug', 'hide_empty' => true)); echo '
    '; foreach ($parent_terms as $pterm) { //Get the Child terms $terms = get_terms($taxonomyName, array('parent' => $pterm->term_id, 'orderby' => 'slug', 'hide_empty' => true)); foreach ($terms as $term) { echo '
  • name, $taxonomyName ) . '">' . $term->name . '
  • '; } } echo '
'; ?>

Was ich herausgefunden habe, liegt daran, dass ein leeres Taxonomie-Feld gefunden wurde. Ich habe noch nicht alle meine benutzerdefinierten Taxonomiefelder ausgefüllt, also bin ich nicht überrascht von diesem Fehler, ich muss ihn nur lösen. Vielen Dank.

Solutions Collecting From Web of "Überprüfen der Rückgabe mit WP Fehler"

Nicht ganz sicher, was Sie fragen, aber wenn ich richtig verstehe, möchten Sie einige Tests auf den Rückgabewert durchführen, um zu vermeiden, dass ein WP_Error Objekt WP_Error wird und vielleicht Fehler in irgendeiner Weise behandeln.

Gemäß der Dokumentation gibt get_terms() ein Array von get_terms() oder false wenn keine Objekte gefunden wurden, aber wenn man die Quelle betrachtet, gibt es ein WP_Error-Objekt zurück, wenn die Taxonomie nicht existiert oder in einigen Fällen ein leeres Array.

WP_Error auf Fehler zu prüfen, müssen Sie also prüfen, ob der Rückgabewert mit false , einem leeren Array ( array() ) oder einem WP_Error Objekt WP_Error . Der Aufruf von empty($terms) berücksichtigt die ersten beiden und is_wp_error($terms) kann zum Testen verwendet werden, wenn der Rückgabewert ein is_wp_error($terms) ist. So etwas funktioniert für die Durchführung solcher Tests:

 $taxonomyName = "hhie_artists"; //Call top layer terms only (by setting Parent to 0). $parent_terms = get_terms($taxonomyName, array('parent' => 0, 'orderby' => 'slug', 'hide_empty' => true)); if (!empty($parent_terms) && !is_wp_error($parent_terms)) { echo '
    '; foreach ($parent_terms as $pterm) { //Get the Child terms $terms = get_terms($taxonomyName, array('parent' => $pterm->term_id, 'orderby' => 'slug', 'hide_empty' => true)); if (!empty($terms) && !is_wp_error($terms)) { foreach ($terms as $term) { echo '
  • ' . $term->name . '
  • '; } } } echo '
'; }

In WordPress ist jedoch bereits eine function zum Drucken eines solchen Kategoriebaums verfügbar. Es heißt wp_list_categories und ich empfehle dringend, dass Sie stattdessen verwenden. Hier ist wie:

 wp_list_categories(array( 'title_li' => null, // We don't need the automatically generated heading 'depth' => 1, // Judging from your code you only want to print one level of terms 'orderby' => 'slug', 'taxonomy' => 'hhie_artists', )); 

Das Ergebnis sollte dieser Struktur folgen:

  • Elternkünstler A
    • Kinderkünstler A1
    • Kinderkünstler A2
    • Kinderkünstler A3
  • Elternkünstler B
    • Kinderkünstler B1
    • Kinderkünstler B2