Afficher la provenance d’un commentaire sur WordPress
Cette astuce permet d’afficher la provenance du commentaire. C’est-à-dire que l’on peut afficher à côté du pseudo, “Depuis un iPhone” ou “Depuis un iPad”, etc…
Il est possible d’afficher la provenance d’un commentaire à côté du nom de l’auteur. J’entends par provenance l’appareil/navigateur avec lequel a été posté le commentaire (iPhone, iPad, BlackBerry, Google Chrome, Safari, Opera, bref.)
Il suffit d’une seule fonction. Elle affiche la provenance selon un mot clé détecté et utilise le champ comment_agent
de la table wp_comments
.
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
function ua_filter_author_comment( $author_link ) {
global $comment;
$UA = ""; // Par défaut, vide.
$user_agents = array('iphone' => ' (Depuis un iPhone)',
'ipad' => ' (Depuis son iPad de riche)'
);
foreach( $user_agents as $user_agent => $text ):
$UA = preg_match( '/'.$user_agent.'/i', $comment->comment_agent ) ? $text : $UA;
endforeach;
return $author_link . $UA;
}
add_filter( 'get_comment_author_link', 'ua_filter_author_comment' );
[/pastacode]
Vous pouvez ajouter tous les user agents que vous souhaitez, par exemple pour ajouter l’affichage de la provenance depuis un BlackBerry j’ajoute un élément dans le tableau (array) $user_agents :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
$user_agents = array('iphone' => ' (Depuis un iPhone)',
'ipad' => ' (Depuis son iPad de riche)',
'blackberry' => ' (Depuis le BlackBerry (de Richard))'
);
[/pastacode]
La casse n’est pas sensible. Notez que même les anciens commentaires afficheront la provenance !
19 Commentaires
Oh Merci pour cette astuce je cherchais depuis longtemps …
Tant mieux si ça t’aide, c’est le but :D
Tout d’abord, merci pour vos articles !
Le site s’étoffe dans le bon sens de jour en jour.
Mais juste en passant, votre site n’importe pas le fichier CSS sous chrome osx (uniquement) chez moi. wp-minify semble en cause.
“Notez que les anciens commentaires n’afficheront pas la provenance !”
Ok, j’ai dit n’importe quoi, je ais modifier mon script pour faire mieux et ne pas utiliser de meta … Merci Cédric (iphoneaddict.fr)
Sympa comme fonctionnalité^^ Cependant ça ne fonctionne pas chez moi, si j’ai ‘firefox’ dans mon tableau, tous les coms passent en via firefox… Une idée d’où cela peut venir ?
oui, bien sur, mon commentaire n’était pas clair, désolé :D
En fait quand firefox figure dans l’array, par exemple : $user_agents=array(‘chrome’ => ‘ (depuis chrome)’,’firefox’ => ‘ (depuis FireFox)’);
Tous mes commentaires, y compris ceux postés depuis chrome s’affiche avec la mention (depuis FireFox).
Merci de ton aide.
ok, merci beaucoup de ta réponse rapide :)
J’ai du faire une erreur quelque part, je vais checker tout ça.
Tout fonctionne nickel, je m’étais trompé au niveau de ma boucle foreach($user_agents as $user_agents => $text) au lieu de foreach($user_agents as $user_agent => $text).
Merci encore de ta réactivité.
Bonjour Matthieu,
Il est logique que si tu souhiates détecter “firefox” alors “firefox” sera affiché non ?
Peux tu coller ton code que je vois ça ?
Merci
Quelle version de Chrome ? Je viens de tester ce code :
donc c’est le mien + 2 user agent, les tiens, voici le résultat :
http://baw.li/db/120328-122720.png
Je suis sous Chrome 17 et je vois que Chrome n’a pas le mot “Firefox” dans son useragent donc étrange … Colle tout le code peut etre ? :s
Ha, c’est un peu de ma faute, dans une foreach je mets souvent pour clé le nom de mon tableau sans le s, ce qui au premier regard peut laisser penser que c’est la même chose.
Tant mieux si ça fonctionne !
Bonjour,
Afin de renseigner le tableau, j’ai dans l’idée de lister d’abord tous les cas possibles. Dans phpMyAdmin, avec la requête SQL :
SELECT distinct comment_agent
FROM `wp_comments`
c’est la jungle.
Une autre idée ?
Merci, je vais voir ce que je peux faire avec ça. d:-)
Oui ici tu as une bonne liste : http://fr.wikipedia.org/wiki/User-Agent
mais à toi de “découper” les éléments !
Merci pour l’astuce!
Très bon articles! Merci pour cette astuce.
Mais de rien, mes astuces sont ici : https://www.geekpress.fr/author/boiteaweb/
Merci pour ce tutoriel je chercher sa :)