Die Verwendung von get_term () in functions.php führt zu einem ungültigen Taxonomieerrors

Ich weiß nicht, warum get_term() auf anderen Seiten functions.php aber nicht in functions.php . Mit get_term() in functions.php meldet WordPress den Fehler Ungültige Taxonomie .

Meine function.php die Ajax-Handler ist und bereits für Ajax registriert

  public function load_destination() { global $wpdb; $termId = $_POST['termid']; $term = get_term($termid,'package_state'); $args = array( 'post_type' => 'package', 'tax_query' => array( array( 'taxonomy' => 'package_state', 'field' => 'id', 'terms' => $termId ) ) ); $query = new WP_Query( $args ); $collection=[]; $count =1; while($query->have_posts()) : $query->the_post(); $collection['data'][] = // i need to set term data here $term; $count++; endwhile; wp_send_json($collection); } 

Solutions Collecting From Web of "Die Verwendung von get_term () in functions.php führt zu einem ungültigen Taxonomieerrors"

Es klingt, als ob Sie get_term() für eine benutzerdefinierte Taxonomie verwenden. Wenn Sie get_term() innerhalb von functions.php und außerhalb einer Hook-function verwenden, wird dieser Code sofort ausgeführt, wenn functions.php geladen wird. Ihre benutzerdefinierte Taxonomie wurde zu diesem Zeitpunkt nicht registriert, da dies auf dem init Hook geschieht.

Ihr Code funktioniert innerhalb Ihrer Seitenvorlage, weil WordPress die benutzerdefinierten Taxonomien zu diesem Zeitpunkt geladen hat.

Wenn Sie etwas wie $term = get_term( '2', 'category' ); versuchen würden $term = get_term( '2', 'category' ); (wobei 2 eine gültige Begriff-ID ist) in functions.php , es würde tatsächlich funktionieren, weil WordPress eingebaute Taxonomien in wp-settings.php (was sehr früh im Ladeprozess ist) aus Gründen der Abwärtskompatibilität lädt. WordPress registriert übrigens auch Standardtaxonomien bei init . Dies wird im Dokumentationsblock für create_initial_taxonomies() in /wp-includes/taxonomy.php .

Wie auch immer, das Ausführen von get_term() außerhalb einer get_term() function in functions.php ist nicht der richtige Weg, um dies zu tun, und mehr Code wäre nötig, um Ihnen weiter zu helfen.

https://codex.wordpress.org/Function_Reference/get_term

 Uses global: (object) $wpdb 

versuche es zu deklarieren

 global $wpdb; 

vor deiner get_term () Abfrage?

Je nach dem Code, den Sie verwenden möchten, funktioniert es möglicherweise.