Erhalten Sie alle Begriffe innerhalb einer bestimmten Taxonomie in einer Multisite

Ich habe einen Vaterblog / Hauptblog innerhalb einer Multisite, der eine spezifische Taxonomie mit mehr als 20 Begriffen enthält. Ich brauche nur eine Liste aller Begriffe innerhalb dieser Taxonomie …

Es macht mir nichts aus, mit WPDB zu quälen, aber ich weiß einfach nicht, wie ich es richtig schreiben soll oder auf eine andere Art und Weise habe ich versucht: ” switch_to_blog “, aber das funktioniert nicht, wenn man Begriffe befragt

Irgendein Vorschlag?
Ich habe versucht das: Multisite Global Terms Plugin (funktioniert nicht) …

BEARBEITEN (Antwort auf Frage im Kommentar)
Dies ist ein Beispiel für switch_to_blog ich versuchte:

function multisite_profession_select(){ switch_to_blog(1); $taxonomies = array('rsitecat'); $args = array('hide_empty' => false); $terms = get_terms($taxonomies, $args ); echo '
'; print_r($terms); echo '

'; restore_current_blog(); }

Die Antwort bekomme ich:

 WP_ERROR OBJECT ( [ERRORS] => ARRAY ( [INVALID_TAXONOMY] => ARRAY ( [0] => INVALID TAXONOMY ) ) [ERROR_DATA] => ARRAY ( ) ) 

Solutions Collecting From Web of "Erhalten Sie alle Begriffe innerhalb einer bestimmten Taxonomie in einer Multisite"

Keine Möglichkeit, das auf eine Art “Word Press” zu machen …

 function multisite_profession_select(){ switch_to_blog(1); $taxonomies = array('rsitecat'); $check_later = array(); global $wp_taxonomies; foreach($taxonomies as $taxonomy){ if (isset($wp_taxonomies[$taxonomy])){ $check_later[$taxonomy] = false; } else { $wp_taxonomies[$taxonomy] = true; $check_later[$taxonomy] = true; } } $args = array('hide_empty' => false); $terms = get_terms($taxonomies, $args ); echo '
'; print_r($terms); echo '

'; if (isset($check_later)) foreach($check_later as $taxonomy => $unset) if ($unset == true) unset($wp_taxonomies[$taxonomy]); restore_current_blog(); }

WP wird prüfen, ob Taxonomy existiert, aber auf Multisite-Blogs wird nur $ table_prefix geschaltet, aber nicht wirklich in den Blog gewechselt. In diesem festen Code – es sollte WP zu denken, dass Taxonomie registriert und einen Begriff aus einem mu-Blog-Tabellen abrufen. nach Anfrage – Sie töten gefälschte Taxonomie Geister.

P / S /

Ich habe den Code nicht getestet.

Wenn Sie Probleme haben, Daten von einem anderen Blog zu bekommen, sind Polyfixes wie vorübergehende Registrierung von Taxonomien usw. auf lange Sicht ein echtes Pita.

Sie können sich nicht wirklich auf diese Problemumgehungen verlassen, da solche Problemumgehungen eine interne wp-Infrastruktur nachahmen, die sich im Laufe der Zeit ändert.

Best-Practice-Methode wäre die Registrierung eines Rest-API-Endpunkts ( https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/ ) oder eines xmlrpc-Endpunkts ( https: // codex.wordpress.org/XML-RPC_Extending ). Der Endpunkt ruft alle benötigten Daten ab und gibt sie als json zurück. Sie haben also immer einen sauberen lokalen Kontext des Blogs abgefragt und müssen sich nicht mit fehlender Infrastruktur herumärgern.

Wäre so etwas im Quell-Blog:

 add_action( 'rest_api_init', function () { register_rest_route('your-namespace', '/get-terms/(?P\d+)', array( 'methods' => 'GET', 'callback' => function($data) { $taxonomy_slug = $data['taxonomy']; return get_terms($taxonomy_slug, array('hide_empty' => false)); } )); } ); 

Und so etwas im anfragenden Blog:

 $api_request = 'http://the.domain.of.your.blog/wp-json/your-namespace/get-terms/slug-of-taxonomy'; $api_response = wp_remote_get($api_request); $taxonomy_terms = json_decode(wp_remote_retrieve_body($api_response), true); 

Hoffe, das hilft und viele Grüße aus Salzburg!