So erhalten Sie Begriffe aus benutzerdefinierten Taxonomien nach WordPress 4.5.0

Ich habe die Shortcodes entwickelt, für die ich die Bedingungen von benutzerdefinierten Taxonomien aus einem Plugin heraushole. Es funktionierte gut vor WordPress 4.5.0 und erkannte nun, dass es nach 4.5.0 nicht mehr funktioniert.

Ich ziehe diese Begriffe in einer alten Methode wie unten.

Alte Methode

// Sermon Topics $prefix_topic_terms= array(); if ( ! empty( $prefix_topic_terms ) ) { $prefix_sermon_topic = get_terms('ctc_sermon_topic', 'orderby=name&hide_empty=0'); foreach ($prefix_sermon_topic as $category) { $prefix_topic_terms[$prefix_sermon_topic->slug] = $prefix_sermon_topic->name; } } 

Neue Methode, die nicht funktioniert hat

 // Sermon Topics $prefix_topic_terms = array(); if ( ! empty( $prefix_topic_terms ) ) { $prefix_sermon_topic = get_terms( array( 'taxonomy' => 'ctc_sermon_topic', 'hide_empty' => false, 'orderby' => 'name', 'hide_empty' => true, )); foreach ($prefix_sermon_topic as $category) { $prefix_topic_terms[$category->slug] = $category->name; } } var_dump($prefix_topic_terms); 

Zeigt den Fehler Ungültiger Taxonomie-Fehler wie folgt an

 object(WP_Error)#2577 (2) { ["errors"]=> array(1) { ["invalid_taxonomy"]=> array(1) { [0]=> string(17) "Invalid taxonomy." } } ["error_data"]=> array(0) { } } 

Was mache ich falsch?

Bearbeitet Habe Erfolg mit dem folgenden Code

 // Sermon Topics $prefix_topic_terms = array(); $prefix_sermon_topic = get_terms( array( 'taxonomy' => 'ctc_sermon_topic', 'orderby' => 'name', 'hide_empty' => true, )); if ( ! empty( $prefix_topic_terms ) && ! is_wp_error( $prefix_topic_terms ) ) { foreach($prefix_sermon_topic as $category) { $prefix_topic_terms [$category->slug] = $category->name; } } 

Der obige Code funktioniert, wenn ich die if-Bedingung entferne.

Solutions Collecting From Web of "So erhalten Sie Begriffe aus benutzerdefinierten Taxonomien nach WordPress 4.5.0"

OK, wilde Vermutung:

 $prefix_topic_terms= array(); if ( ! empty( $iva_topic_terms ) ) { 

vs

 $prefix_topic_terms = array(); if ( ! empty( $prefix_topic_terms ) ) { 

Sie haben die Variable geändert, die im neuen Code auf Leerheit geprüft wird. Dieser Code wird niemals get_terms für diese Taxonomie abfragen, da $prefix_topic_terms nicht leer sein wird. Das Error-Objekt, das Sie erhalten, steht wahrscheinlich nicht mit einem früheren Aufruf von get_terms in Verbindung.

Habe es behoben, als ich die Variablen überprüft habe, die leer und als ein Array definiert sind. Jetzt konvertiert der Code in eine function. Ich hoffe, dies ist hilfreich für andere

Früher war der Zustand falsch. Jetzt überprüfe ich, ob die übergebene Variable ein WordPress-Fehler mit is_wp_error ist und die Variable der Taxonomiebegriffe nicht leer ist.

 function sermon_topic() { $prefix_terms = array(); $prefix_postype_taxonomy = get_terms( array( 'taxonomy' => 'ctc_sermon_topic', 'orderby' => 'name', 'hide_empty' => true, )); if ( ! empty( $prefix_postype_taxonomy ) && ! is_wp_error( $prefix_postype_taxonomy ) ) { foreach($prefix_postype_taxonomy as $category) { $prefix_terms[$category->slug] = $category->name; } } return $prefix_terms; } 

Wo ich die Begriffe ziehen möchte sermon_topic(); ich die function sermon_topic();