WordPress MU: Aggregation von individuellen Blogs Tag cloud

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.

10 Kommentare zu "WordPress MU: Aggregation von individuellen Blogs tag cloud"

  1. 6. Mai 2009 aldo:

    Diese Datei befindet sich in welcher Rolle?

  2. 6. Mai 2009 Giovambattista Fazioli :

    @ Aldo:

    Diese Datei befindet sich in welcher Rolle?

    riga 552 Es ist im Ordner wp-includes Dateien in der category-template.php line 552 :)

  3. 6. Mai 2009 aldo:

    Ich 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?

  4. 6. Mai 2009 Giovambattista Fazioli :

    @ Aldo:

    aber es gibt mir Fehler

    Welche haben Sie den Fehler und wo?

  5. 6. Mai 2009 aldo:
     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

  6. 8. Mai 2009 Giovambattista Fazioli :

    @ Aldo: es scheint, dass Sie nicht über diese Funktion zur Verfügung! Welche Version von WordPress verwenden Sie?

  7. 24. November 2010 BECA :

    Ich war sehr nützlich! : D

    Dank

  8. 24. November 2010 WP Mu: Anzeige der Tag-Cloud des Netzwerkes | der Blog beca :

    [...] 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. [...]

  9. 24. November 2010 BECA :

    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

  10. 24. November 2010 Giovambattista Fazioli :

    @ 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!

Hinterlasse einen Kommentar

XHTML TAG PERMIT: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL