Nicht erfasster Fehler: Objekt vom Typ WP_Term kann nicht als Array verwendet werden

Lesezeit: 2 Minuten

Ich hatte dieses Problem, seit ich mein WordPress aktualisiert habe. Auf meiner Website habe ich einen benutzerdefinierten Beitrag, der einige benutzerdefinierte Kategorien enthält, etwa so:

1) Eltern-Kategorie: Essen |
Kind: Pommes, Hamburger, Ahornsirup…

2) Eltern-Kategorie: Jahr |
Kind: 2016, 2015, 2014…

3) Eltern-Kategorie: Land |
Kind: USA, Kanada, Spanien…

Wenn ich also meinen benutzerdefinierten Beitrag schreibe, würde ich innerhalb dieser Kategorien auswählen und einfach die Kategorie auswählen (das Kästchen ankreuzen), die ich brauche. Und es würde ungefähr so ​​angezeigt:

Titel: Neues Rezept

Inhalt: Meine SMS

Bedingungen: Nahrung: Ahornsirup / Land: Kanada / Jahr 2014

Aber jetzt werden die Bedingungen überhaupt nicht angezeigt, und ich erhalte diese Fehlermeldung:
Objekt vom Typ WP_Term kann nicht als Array verwendet werden

Früher hatte ich den folgenden PHP-Code, mit dem ich das übergeordnete Element der untergeordneten Kategorie abrufen (und als Präfix verwenden) und auch die Reihenfolge ändern konnte.

  $term_list = wp_get_post_terms($post->ID, 'project_cat', array("fields" => "all"));
                            $terms_hierarchy = array();
                            foreach ($term_list as $term_single) {
                                $parent = $term_single->parent;
                                if ($parent != 0) {
                                    $terms_hierarchy[$parent][] = get_term($parent)->slug;
                                    $terms_hierarchy[$parent]['children'][$term_single->term_id] = $term_single->name;
                                } else {
                                    $terms_hierarchy[$parent] = $term_single;
                                }
                            }
   //PHP indicated this line:
                            foreach ($terms_hierarchy as $key => $term) {
                                echo "<span>$term[0]: </span>";
                                if (!empty($term['children'])) {
                                    $s_children = '';
                                    foreach ($term['children'] as $key => $child) {
                                        if ($term[0] == 'client') {
                                            $tax_meta = get_term_meta($key);
                                            if(!empty($tax_meta['external_url'][0])){
                                               $s_children .= "<a target="_blank" href="https://stackoverflow.com/questions/41769716/{$tax_meta["external_url'][0]}'>$child</a>, ";
                                            }
                                            else {
                                                $s_children .= $child . ', ';
                                            }
                                        }
                                        else {
                                            $s_children .= $child . ', ';
                                        }
                                    }
                                    echo rtrim($s_children, ', ') . "<br />";
                                }
                            }

Ich wäre wirklich dankbar, wenn jemand helfen kann, herauszufinden, was schief gelaufen ist?

Vielen Dank für Ihre Zeit

  • Tut mir leid, dass ich nochmal frage, aber bis jetzt konnte ich das Problem nicht selbst beheben… Im Moment ist meine vorübergehende Lösung, die Zeile zu entfernen, aber dann würden die meisten meiner Kategorien verschwinden… Würde mich sehr über einige Tipps freuen!

    – cbtr

    7. Februar 2017 um 20:34 Uhr

$terms_hierarchy ist kein Array, sondern ein Std-Objekt. So …

$term[‘children’]

… wäre eigentlich …

$term->Kinder

  • Danke, dass du mir geholfen hast!

    – cbtr

    13. Juli 2017 um 10:10 Uhr

1384120cookie-checkNicht erfasster Fehler: Objekt vom Typ WP_Term kann nicht als Array verwendet werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy