WordPress MU: agréger des nuages ​​individuels Tag blogs

Il ne pourrait jamais arriver à agréger ont le nuage de tags individuels par WordPress MU. En outre, dans certains contextes, il peut ne pas donner un sens à montrer un «nuage» avec le blog tag hétérogènes. Cependant, dans le cas improbable où quelqu'un était pour, alors voici un moyen simple de montrer un agrégat nuage de tags.

La balise normes cloud WordPress

Tout d'abord voyons ce que WordPress utilise pour afficher les normes tag cloud: la fonction 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
/ **
Nuage de tag * Affichage.
*
* La taille du texte est fixé par le «petit» et «plus grand» arguments, qui sera effective
* Utilisez la valeur 'unité de l' argument de l'unité de la taille du texte CSS. Le «format»
Argument * peut être «plate» (par défaut), 'list', ou 'tableaux'. La valeur forfaitaire pour le
* Argument 'Format' va séparer les tags avec des espaces. La valeur de liste pour la
* Argument "Format" pour formater les balises dans une liste UL HTML. La valeur de tableau pour les
* Le «format» sera de retour l'argument en format PHP de type tableau.
*
* L'argument de la 'orderby' accepte 'nom' ou 'count' et par défaut, 'nom'.
* Le «ordre» est la direction de trier, par défaut 'ASC' et peut être 'DESC'.
*
* Le 'nombre' argument est le nombre de balises à revenir. Par défaut, la limite sera
* Soyez à retourner les 45 premiers tags dans la liste nuage de tags.
*
* Le «topic_count_text_callback 'argument est une fonction, qui effectivement, Vu le nombre de
* Avec que les postes de la balise renvoie un texte pour la bulle d'aide du lien tag.
* @ Voir default_topic_count_text
*
* Le «excluent» et «comprennent» les arguments sont utilisés pour les {@ link get_tags ()}
* Fonction. Devrait être utilisé seulement un, un seul sera utilisé et de la raison
* Les autres ignorées, s'ils sont tous deux en Septembre
*
* @ Depuis 2.3.0
*
* @ Param array | string $ args facultatif. Ignorer les arguments par défaut.
* @ Return array Généré nuage de tags, que si aucun des échecs et 'array' est fixé pour le «format» argument.
* /
$args = '' ) { Fonction wp_tag_cloud ($ args ='') {
array ( $ Defaults = array (
8 , 'largest' => 22 , 'unit' => 'pt' , 'number' => 45 , «Plus petite '=> 8,« le plus grand' => 22, 'unité' => 'pt', 'nombre' => 45,
'flat' , 'orderby' => 'name' , 'order' => 'ASC' , 'Format' => 'plate', 'orderby' => 'nom', 'order' => 'ASC',
'' , 'include' => '' , 'link' => 'view' «Exclure» =>'', 'include' =>'', 'lien' => 'view'
);
wp_parse_args ( $args , $defaults ) ; $ Args = wp_parse_args ($ args, $ defauts);

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'))) / / Toujours requête Top Tags

empty ( $tags ) ) if ( vide ($ balises))
de retour;

$tags as $key => $tag ) { foreach ($ tags as $ key => $ tag) {
'edit' == $args [ 'link' ] ) if ("modifier" == $ args ['lien'])
get_edit_tag_link ( $tag -> term_id ) ; $ Lien = get_edit_tag_link ($ tag -> term_id);
d'autre
get_tag_link ( $tag -> term_id ) ; $ Lien = get_tag_link ($ tag -> term_id);
is_wp_error ( $link ) ) if (is_wp_error ($ link))
; return false;

$key ] -> link = $link ; $ Tags [$ key] -> lien = $ lien;
$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 $ retour = ($ balises, $ args) / / C'est ici que les balises haut rentrer dans l'ordre celles selon $ args

apply_filters ( 'wp_tag_cloud' , $return , $args ) ; $ Retour = apply_filters ('wp_tag_cloud', $ retour, $ args);

'array' == $args [ 'format' ] ) if ('array' == $ args ['format'])
; return $ retour;

; echo $ retour;
}

Si l'on regarde le code, nous voyons que les questions clés sont: la récupération des balises

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'))) / / Toujours requête Top Tags

che genera effettivamente la “nuvola”. Le tableau $tags est ensuite utilisé par la fonction wp_generate_tag_cloud() qui génère en réalité le «nuage».

Changer pour WordPress MU

Modifiant légèrement cette fonction, nous pouvons obtenir un nuage de tags qui inclut tous nos blogs:

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
/ **
* Nuage de tag individuelles agrégées de tous les blogs
*
* @ Return
Objet * @ Param $ args [en option]
* /
$args = '' ) { Fonction wpmu_tag_cloud ($ args ='') {
array ( $ Defaults = array (
8 , 'largest' => 22 , 'unit' => 'pt' , 'number' => 45 , «Plus petite '=> 8,« le plus grand' => 22, 'unité' => 'pt', 'nombre' => 45,
'flat' , 'orderby' => 'name' , 'order' => 'ASC' , 'Format' => 'plate', 'orderby' => 'nom', 'order' => 'ASC',
'' , 'include' => '' , 'link' => 'view' «Exclure» =>'', 'include' =>'', 'lien' => 'view'
);
wp_parse_args ( $args , $defaults ) ; $ Args = wp_parse_args ($ args, $ defauts);

/ / Obtenir la liste de tous les blogs
get_blog_list ( 0 , 9999 ) ; $ Blog_list get_blog_list = (0, 9999);

array ( ) ; $ Tags = array ();

/ / Pour chacun des blogs récupère les balises
$blog_list as $key => $blog ) { foreach ($ blog_list as $ key => $ blog) {
$blog [ 'blog_id' ] ; Blog_id = blog $ $ ['blog_id'];
/ / Sélectionnez le blog
) ; switch_to_blog ($ blog_id);
get_tags ( array_merge ( $args , array ( 'orderby' => 'count' , 'order' => 'DESC' ) ) ) ; // Always query top tags Get_tags Single_blog_tags = $ ( array_merge ($ args, array ('orderby' => 'count', 'order' => 'DESC'))) / / Toujours requête Top Tags

$single_blog_tags as $key => $tag ) { foreach ($ single_blog_tags as $ key => $ tag) {
'edit' == $args [ 'link' ] ) if ("modifier" == $ args ['lien'])
get_edit_tag_link ( $tag -> term_id ) ; $ Lien = get_edit_tag_link ($ tag -> term_id);
d'autre
get_tag_link ( $tag -> term_id ) ; $ Lien = 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] -> lien = $ lien;
$key ] -> id = $tag -> term_id ; Single_blog_tags $ [$ key] -> id = $ tag -> term_id;
}

/ / Fusionne la liste des étiquettes individuelles dans une seule liste
array_merge ( $single_blog_tags , $tags ) ; $ Tags = array_merge (single_blog_tags $, $ balises);
}

/ / Appeler la fonction standard de WordPress
wp_generate_tag_cloud ( $tags , $args ) ; Wp_generate_tag_cloud $ retour = ($ balises, $ args);

apply_filters ( 'wp_tag_cloud' , $return , $args ) ; $ Retour = apply_filters ('wp_tag_cloud', $ retour, $ args);

'array' == $args [ 'format' ] ) if ('array' == $ args ['format'])
; return $ retour;

; echo $ retour;
}

Le cœur de cette variante réside dans la fonction switch_to_blog() . Avec cette fonctionnalité, vous pouvez faire défiler tous les blogs et extraire le nuage de tag unique. , che elaborerà l'array come una singola entità. Une fois que cela est fait en utilisant array_merge() de fusionner les différents «nuages» en un seul nuage à être passé à la fonction wp_generate_tag_cloud() , qui traitera du tableau comme une seule entité.

10 commentaires à "WordPress MU: agréger des nuages ​​individuels tag blogs"

  1. 6 mai 2009 Aldo:

    Ce fichier réside dans ce rôle?

  2. 6 mai 2009 Giovambattista Fazioli :

    @ Aldo:

    Ce fichier réside dans ce rôle?

    riga 552 Il est situé dans le dossier wp-includes dans les fichiers category-template.php ligne 552 :)

  3. 6 mai 2009 Aldo:

    J'ai essayé de remplacer le code avec ce que vous avez écrit mais il me donne l'erreur, quand j'ai le temps alors j'ai essayer de le changer sans coller au hasard. Je voulais obtenir une autre application qui utilise le site de tous les blogs de WPMU? Pensez-vous qu'il est un plugin qui génère automatiquement un plan Sitemap pour les blogs d'utilisateur unique?

  4. 6 mai 2009 Giovambattista Fazioli :

    @ Aldo:

    mais il me donne l'erreur

    Quel genre de vous donne l'erreur et où?

  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

    moi de là où ils devraient être les balises

  6. 8 mai 2009 Giovambattista Fazioli :

    @ Aldo: il semble que vous n'avez pas cette fonction disponible! Quelle version de WordPress que vous utilisez?

  7. 24 novembre 2010 BECA :

    J'ai été très utile! : D

    Merci

  8. 24 novembre 2010 WP Mu: Afficher le nuage de tag du réseau | le blog a été BECA :

    [...] Après les excellents guides trouvés pour afficher les messages des différents sites du réseau, maintenant, je voudrais souligner comment afficher le nuage de tags de tous les blogs dans le réseau. L'auteur est Undolog et guides que vous trouverez sur cette page. [...]

  9. 24 novembre 2010 BECA :

    Si un tag est présent dans les sites du réseau n, dans le nuage de tags sont répétées n fois. Pensez-vous qu'il pourrait y ajouter les sites de balise différent?

    Luc

  10. 24 novembre 2010 Giovambattista Fazioli :

    @ BECA: tout à fait possible, en effet. Comme vous pouvez voir la boucle de la fonction, les balises sont extraites pour chaque blog. Alors il peut bien arriver que la même étiquette est présente dans un ou plusieurs blogs. Évidemment, cette redondance n'est qu'apparente car les tags (étiquettes) pointent à différents contextes et du contenu.
    Qu'est-ce que vous pourriez faire est d'améliorer la fonction. Par exemple, si la balise «Apple» est présent sur plusieurs blogs, de sortie, il serait bon tout le temps il semble toutefois indiquer ce qui appartient à différents blogs. L'idéal est d'avoir une indication de la façon "d'Apple (nom du blog)» ...
    non combini pasticci! Dans la pratique, la boucle pour chaque tirage devrait créer une liste de balises-tags blog, vérifiez s'il ya des doublons dans cette affaire et de sortie, il sous la forme "tags (nom du blog)" ... afin que array_merge ( ) ne plaisante pas!

Laisser un commentaire

XHTML TAG PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CODE D'INSERTION:
 <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