Es könnte nie passieren müssen Aggregation der einzelnen tag cloud by WordPress MU. Darüber hinaus in bestimmten Kontexten, kann es nicht sinnvoll, eine "Wolke" mit dem Tag blog heterogenen zeigen. Doch in dem unwahrscheinlichen Fall, dass jemand für war, so ist hier eine einfache Möglichkeit, eine Tag-Cloud aggregieren zu zeigen.
Die Tag-Cloud-Standards WordPress
Zunächst einmal wollen wir mal sehen, was WordPress mit dem Tag Cloud Standards Display verwendet: die Funktion wp_tag_cloud() :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | / ** * Display tag cloud. * * Die Textgröße wird durch die "kleinste" und "größten" Argumente, die effektiv wird eingestellt * Verwenden Sie die "Einheit" Argument-Wert für die CSS Textgröße Einheit. Die 'format' * Argument sein kann "flach" (default), 'list', oder 'Arrays'. Die Wohnung für den * 'Format' Argument Tags mit Leerzeichen trennen. Die Liste für den * 'Format' Argument wird die Tags in einer HTML UL Liste Format. Die Array-Wert für * Die 'format' Argument wird in PHP Array-Typ-Format zurück. * * Die "orderby Argument akzeptieren 'name' oder 'count' und standardmäßig auf 'name'. * Die "Ordnung" ist die Richtung zu sortieren, Standardwert ist 'ASC' und kann 'DESC' werden. * * Die 'number' Argument ist, wie viele Tags, um zurückzukehren. Standardmäßig wird die Grenze * Seien Sie der Top 45 Tags in der Tag-Cloud zurückzukehren. * * Die "topic_count_text_callback Argument ist eine Funktion, die effektiv, da die Zählung * With That Beiträge der Tag gibt einen Text für den Tooltip des Tags zu verbinden. * @ Default_topic_count_text See * * Die "auszuschließen" und "include 'Argumente sind für die {@ link get_tags ()} verwendet * Funktion. Sollte Only One benutzt werden, wird nur einer werden, da die verwendeten und * Andere ignoriert, wenn sie beide im September sind * * @ Seit 2.3.0 * * @ Param array | string $ args Optional. Überschreiben Sie die Standard-Argumente. * @ Return array Generated tag cloud, nur dann, wenn keine Ausfälle und 'array' für die 'format' Argument Set. * / $args = '' ) { wp_tag_cloud Funktion ($ args ='') { array ( $ Defaults = array ( 8 , 'largest' => 22 , 'unit' => 'pt' , 'number' => 45 , "Sehr klein" => 8, 'größte' => 22, 'Einheit' => 'pt', 'number' => 45, 'flat' , 'orderby' => 'name' , 'order' => 'ASC' , 'Format' => 'flach', 'orderby' => 'name', 'order' => 'ASC', '' , 'include' => '' , 'link' => 'view' "Ausschließen" =>'', 'include' =>'', 'link' => 'view' ); wp_parse_args ( $args , $defaults ) ; $ Args = wp_parse_args ($ args, $ defaults); get_tags ( array_merge ( $args , array ( 'orderby' => 'count' , 'order' => 'DESC' ) ) ) ; // Always query top tags $ Tags = get_tags ( array_merge ($ args, array ('orderby' => 'count', 'order' => 'DESC'))) / / Immer Abfrage top tags empty ( $tags ) ) if ( leer ($ tags)) return; $tags as $key => $tag ) { foreach ($ tags as $ key => $ tag) { 'edit' == $args [ 'link' ] ) if ("Bearbeiten" == $ args ['link']) get_edit_tag_link ( $tag -> term_id ) ; $ Link = get_edit_tag_link ($ tag -> term_id); sonst get_tag_link ( $tag -> term_id ) ; $ Link = get_tag_link ($ tag -> term_id); is_wp_error ( $link ) ) if (is_wp_error ($ link)) ; return false; $key ] -> link = $link ; $ Tags [$ key] -> Link = $ link; $key ] -> id = $tag -> term_id ; $ Tags [$ key] -> id = $ tag -> term_id; } wp_generate_tag_cloud ( $tags , $args ) ; // Here's where those top tags get sorted according to $args Wp_generate_tag_cloud $ return = ($ tags, $ args) / / Hier ist, wo die Top-tags denen nach $ sortiert bekommen args apply_filters ( 'wp_tag_cloud' , $return , $args ) ; $ Return = apply_filters ('wp_tag_cloud', $ return, $ args); 'array' == $args [ 'format' ] ) if ('array' == $ args ['format']) ; return $ return; ; echo $ return; } |
Wenn wir auf den Code schauen, sehen wir, dass die wichtigsten Fragen sind: die Erholung der tags
1 | get_tags ( array_merge ( $args , array ( 'orderby' => 'count' , 'order' => 'DESC' ) ) ) ; // Always query top tags $ Tags = get_tags ( array_merge ($ args, array ('orderby' => 'count', 'order' => 'DESC'))) / / Immer Abfrage top tags |
che genera effettivamente la “nuvola”. Das Array $tags wird dann von der Funktion verwendet wp_generate_tag_cloud() , die tatsächlich erzeugt die "Wolke".
Change for WordPress MU
Leicht zu modifizieren diese Funktion, können wir eine Wolke von Tags, die all unseren Blogs gehören:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | / ** * Aggregate einzelnen tag cloud aller Blogs * * @ Return * @ Param object $ args [optional] * / $args = '' ) { wpmu_tag_cloud Funktion ($ args ='') { array ( $ Defaults = array ( 8 , 'largest' => 22 , 'unit' => 'pt' , 'number' => 45 , "Sehr klein" => 8, 'größte' => 22, 'Einheit' => 'pt', 'number' => 45, 'flat' , 'orderby' => 'name' , 'order' => 'ASC' , 'Format' => 'flach', 'orderby' => 'name', 'order' => 'ASC', '' , 'include' => '' , 'link' => 'view' "Ausschließen" =>'', 'include' =>'', 'link' => 'view' ); wp_parse_args ( $args , $defaults ) ; $ Args = wp_parse_args ($ args, $ defaults); / / Get Liste aller Blogs get_blog_list ( 0 , 9999 ) ; $ Blog_list get_blog_list = (0, 9999); array ( ) ; $ Tags = array (); / / Für jeden der Blogs ruft tags $blog_list as $key => $blog ) { foreach ($ blog_list as $ key => $ blog) { $blog [ 'blog_id' ] ; Blog_id = $ $ blog ['blog_id']; / / Wählen Sie das Blog ) ; switch_to_blog ($ blog_id); get_tags ( array_merge ( $args , array ( 'orderby' => 'count' , 'order' => 'DESC' ) ) ) ; // Always query top tags Single_blog_tags get_tags = $ ( array_merge ($ args, array ('orderby' => 'count', 'order' => 'DESC'))) / / Immer Abfrage top tags $single_blog_tags as $key => $tag ) { foreach ($ single_blog_tags as $ key => $ tag) { 'edit' == $args [ 'link' ] ) if ("Bearbeiten" == $ args ['link']) get_edit_tag_link ( $tag -> term_id ) ; $ Link = get_edit_tag_link ($ tag -> term_id); sonst get_tag_link ( $tag -> term_id ) ; $ Link = get_tag_link ($ tag -> term_id); is_wp_error ( $link ) ) return false ; if (is_wp_error ($ link)) return false; $key ] -> link = $link ; Single_blog_tags $ [$ key] -> Link = $ link; $key ] -> id = $tag -> term_id ; Single_blog_tags $ [$ key] -> id = $ tag -> term_id; } / / Führt die einzelnen Tag-Liste in einer einzigen Liste array_merge ( $single_blog_tags , $tags ) ; $ Tags = array_merge ($ single_blog_tags, $ tags); } / / Aufruf der Standard-Funktion von WordPress wp_generate_tag_cloud ( $tags , $args ) ; Wp_generate_tag_cloud $ return = ($ tags, $ args); apply_filters ( 'wp_tag_cloud' , $return , $args ) ; $ Return = apply_filters ('wp_tag_cloud', $ return, $ args); 'array' == $args [ 'format' ] ) if ('array' == $ args ['format']) ; return $ return; ; echo $ return; } |
Das Herzstück dieser Variante liegt in der Funktion switch_to_blog() . Mit dieser Funktion können Sie durch alle Blogs blättern und extrahieren Sie die einzelnen Tag-Cloud. , che elaborerà l'array come una singola entità. Sobald dies geschehen ist mit array_merge() verschmelzen die einzelnen "Wolken" in eine einzige Wolke an die Funktion übergeben werden wp_generate_tag_cloud() , die das Array als eine Einheit verarbeitet wird.










Diese Datei befindet sich in welcher Rolle?
@ Aldo:
riga 552 Es ist im Ordner
wp-includesDateien in dercategory-template.phpline 552Ich habe versucht, ersetzen Sie den Code mit dem, was Sie geschrieben haben, aber es gibt mir eine Fehlermeldung, wenn ich einige Zeit, so dass ich es ohne Einfügen willkürlich zu ändern versuchen. Ich wollte in eine andere Anwendung, dass die Sitemap aller Blogs von WPMU verwendet werden? Glaubst du, es ist ein Plugin, dass automatisch eine Sitemap für eindeutige Benutzer-Blogs?
@ Aldo:
Welche haben Sie den Fehler und wo?
Fatal error: Call to undefined function wp_tag_cloud()in /home/content/b/a/s/bastaldo/html/wp-content/themes/FREEmium/sidebar.php
on line 28
mich von dort, wo sie tags werden sollte
@ Aldo: es scheint, dass Sie nicht über diese Funktion zur Verfügung! Welche Version von WordPress verwenden Sie?
Ich war sehr nützlich!
Dank
[...] Nach der hervorragenden Führungen finden an den Pfosten der verschiedenen Netzwerk-Websites angezeigt werden, jetzt möchte ich darauf hinweisen, wie man die tag cloud aller Blogs im Netzwerk anzuzeigen. Der Autor ist Undolog und Führungen können Sie auf dieser Seite zu finden. [...]
Wenn ein Tag ist in n Netzwerk-Sites sind in der Tag-Cloud n-mal wiederholt. Glaubst du, es könnte fügte der tag verschiedenen Standorten?
Luke
@ BECA: durchaus möglich, ja. Wie Sie die Schleife der Funktion sehen kann, werden die Tags für die einzelnen Blog extrahiert. So kann es durchaus passieren, dass der gleiche Tag in einem oder mehreren Blogs ist. Offensichtlich ist diese Redundanz nur eine scheinbare, weil die Tags (die tags) im Zusammenhang mit verschiedenen Kontexten und Inhalten.
Was Sie tun können, ist die Funktion zu verbessern. Zum Beispiel, wenn der Tag "Apple" ist auf mehreren Blogs, Ausgang, es wäre gut all die Male, es scheint jedoch, was darauf hinweist, dass gehört zu verschiedenen Blogs. Das Ideal ist ein Indiz für haben, wie "Apple (Blog-Name)" ...
non combini pasticci! In der Praxis der Schleife für jede Ziehung sollte eine Liste der Tags-Tags Blog, überprüfen, ob es Duplikate in diesem Fall und gibt es in der Form "-Tags (blog name)" sind ... so, dass
array_merge ( )nicht mess!