WordPress 2.7 dont la sortie est prévue pour le 10 Novembre 2008, devrait amener des changement plutôt importants, surtout en ce qui concerne les commentaires. Les auteurs de WordPress s’attaquent enfin à ce domaine qui a trop longtemps été délaissé depuis un certain nombre de versions.
Les nouveautés
Les commentaires voient arriver deux fonctionnalités importantes : « Threaded Comments« , c’est-à-dire des commentaires imbriqués comme sur Digg, et la pagination des commentaires.
Il y a également pas mal de mouvement du côté de l’interface d’administration, qui se voit reliftée pour l’occasion. Cette refonte graphique a été faite à partir d’ébauches : les WireFrames que je vous invite à consulter et de différents sondages soumis à la communauté, vous y avez d’ailleurs peut-être répondu.
Voici à quoi devrait ressembler le design final de la version 2.7 de WordPress :
La meilleure façon d’observer les changements en cours est sûrement de se connecter au WordPress de démonstration disponible sur cette page. La connexion s’effectue avec le compte « admin » et le mot de passe « demo » :
Pouvoir cacher le texte des menus sur la barre latérale permet d’avoir un espace de travail maximal. Parfait pour les écrans à la résolution moyenne.

La page des plugins permet de rechercher et d'installer les plugins directement depuis l'administration de WordPress.

Il est également possible d'uploader et d'installer un plugin au format Zip. On peut aussi afficher les plugins les plus populaires.

Il est possible de fermer automatiquement les commentaires sur les articles vieux d'un certain nombre de jours (pour éviter le spam), de grouper les commentaires sous forme de threads en choisissant la profondeur maximum et de paginer les commentaires en choisissant le nombre de commentaires par page.

La section 'Media Settings' permet de choisir s'il on désire lier les media à l'article ou au fichier lui-même. On peut maintenant choisir une taille maximum pour les images, et le format d'affichage par défaut : Auto, Thumbnail, Medium, Large ou Full size. L'alignement par défaut des images est paramétrable.
En plus de cela, quelques fonctions supplémentaires :
- Sur la page d’édition d’article et sur le tableau de bord, les boîtes sont déplaçables et peuvent être masquées complètement,
- Dans l’interface d’administration, des raccourcis claviers permettent la modération des commentaires,
- Dans l’administration, il est possible de filtrer les colonnes dans la page listant les articles,
- Possibilité de modifier certains attributs des articles directement depuis cette page,
- API XMLRPC pour les commentaires (pour pouvoir par exemple modérer les commentaires depuis l’Iphone un jour ?)
- Réponse aux commentaires depuis l’administration,
- Raccourcis clavier pour la gestion des commentaires,
- API pour les commentaires imbriqués et le nouveau wp_list_comments(),
- API pour la mise à jour des thèmes (comme celle pour la mise à jour des plugins),
- Sticky Posts pour maintenir un article sur la page d’accueil,
- Installation automatique des plugins et navigation dans la base des plugins depuis l’administration,
- Mises à jour automatiques de WordPress,
- Cookies de type HTTPOnly pour l’authentification,
- Nouvelle API pour les requêtes HTTP,
- Suppression de la compression pour TinyMCE afin de permettre la mise en cache du Javascript par le navigateur et par Google Gears (la page d’édition devrait charger plus rapidement),
- Une nouvelle abstraction d’un système de fichier SSH2 pour effectuer les installations et des mises à jour en SFTP.
Quelques fonctionnalités qui rateront la v2.7
- L’amélioration de l’interface de la fonction « historique de l’article » affichant les révisions,
- Des informations de géolocalisation pour les articles, les commentaires, …,
- Rendre l’uploader (SWFUploader) compatible avec Flash 10,
- Des améliorations pour le tag « gallery »,
- La coloration syntaxique CodePress pour les éditeurs de code de l’administration,
- Un éditeur de menu,
- L’intégration de sitemaps,
- Un versionning pour l’édition des templates,
- …
Tout ça pour la version 2.8 ?
Compatibilité des plugins avec WordPress 2.7
Comme d’habitude, il suffit de se rendre sur cette page du Codex WordPress pour vérifier la compatibilité des plugins avec la version 2.7.
WordPress, un BloatWare ?
Voilà qui fait énormément de nouveautés. Certains pensent que des logiciels comme WordPress sont condamnés à devenir des BloatWares avec le temps, à force d’accumuler les fonctionnalités. Il faut de la nouveauté en permanence pour faire parler de soi, n’est-ce pas ?
Certains pensent ainsi que la réécriture plus ou moins complète d’un logiciel doit avoir lieu régulièrement, les objectifs de celui-ci pouvant varier largement au bout de quelques années rendant ses bases inadaptées.
Le cas de WordPress 2.7 est assez impressionnant. En effet, les dotcleariens semblent conserver la philosophie suivante :
Si Dotclear devait répondre à chaque besoin spécifique, il aurait 36000 fonctions et péserait bien plus que son poids actuel. Avec des plugins, on offre le choix aux utilisateurs d’installer et utiliser seulement ce dont ils ont besoin.
WordPress 2.7 intégrera en natif des fonctionnalités qui remplaceront un nombre très important de plugins. Voici quelques exemples que j’ai pu trouver :
- Comment Timeout pour fermer les commentaires au bout d’un certain temps,
- Paged Comments pour paginer les commentaires,
- Threaded Comments pour les commentaires imbriqués,
- Le menu sur la gauche pour l’administration, que proposait d’une certaine façon Fluency Admin,
- Plugin Manager qui permettait de parcourir les plugins et de les installer et WP Easy Uploader qui permettait d’envoyer un zip et de le décompresser,
- Quelques options de WP Comment Remix pour les commentaires,
- WP-Sticky pour les Stickys Posts,
- WordPress Automatic Upgrade pour les mises à jour automatiques de WordPress,
- Batch Categories pour l’édition en ligne des articles,
- Et bientôt Google XML Sitemaps Generator pour les sitemaps,
Et j’en oublie sûrement…
Que penser de tout cela ? D’un côté c’est une bonne chose, puisque nous n’aurons pas à nous soucier de la compatibilité de ces plugins pour les futures versions de WordPress, d’un autre côté on peut se demander si WordPress ne va pas devenir un peu lourd et si maintenir ces fonctions supplémentaires ne va finalement pas ralentir les futurs développements.
L’avenir nous le dira, mais vous pouvez faire vos pronostics dans les commentaires 
Des modifications lourdes pour supporter les nouvelles fonctions
Les modifications pour les commentaires demanderont quelques efforts plus ou moins importants pour les blogueurs. Aussi bien du côté des fichiers du thème que de la feuille de style.
Rassurez-vous, votre thème restera compatible avec la nouvelle version, mais pour profiter des nouvelles fonctions, vous devrez l’adapter. Ce qui suit est un exemple d’adaptation du thème par défaut pour passer de la version 2.6 à la version 2.7. La version actuelle n’étant pas définitive, le code peut encore évoluer.
Attention, la suite peut donner mal aux crâne aux non-codeurs, pensez à prendre un petit café pour tenir 
Retrocompatibilité
Tout d’abord, WordPress 2.7 utilise une nouvelle fonction pour les commentaires, qui fait presque tout : « wp_list_comments« , il suffira donc d’utiliser un code de ce type dans « comments.php » pour assurer la retrocompatibilité :
if (function_exists('wp_list_comments')) : // nouveau code pour comments.php avec wp_list_comments et autre else : // ancien code pour la retrocompatibilité endif;
Protection par mot de passe
Pour gérer la protection par mot de passe des articles, le code en haut du fichier « comments.php » est légèrement modifié :
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!'); if ( post_password_required() ) { echo 'This post is password protected. Enter the password to view comments.'; return; }
Boucle des commentaires
Quant à la boucle des commentaires, qui ressemblait à cela :
if ($comments) : <?php $comment_count = get_comment_count($post->ID); echo $comment_count['approved']; ?> Comments <ul class="commentlist"> <?php foreach( $comments as $comment ) : // stuff to display the comment in an LI here endforeach; ?></ul> <?php else : if ('open' == $post->comment_status) : // If comments are open, but there are no comments. else : // comments are closed endif; endif;
Elle intègre désormais la fonction « wp_list_comments » comme ceci :
if ( have_comments() ) : ?> <h4 id="comments"><?php comments_number('No Comments', 'One Comment', '% Comments' );?></h4> <ul class="commentlist"> <?php wp_list_comments(); ?></ul> <div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <?php else : // this is displayed if there are no comments so far ?> <?php if ('open' == $post->comment_status) : // If comments are open, but there are no comments. else : // comments are closed endif; endif;
On voit ici que:
- « have_comments » remplace le « if ($comments)« ,
- « wp_list_comments » remplace la boucle foreach et affiche tous les commentaires en y ajoutant les nouvelles fonctions de commentaires imbriqués ainsi que les classes nécessaires pour la feuille de style,
- Une section de navigation est ajoutée pour les commentaires (comme celle qui existait pour les articles).
Pour que les commentaires imbriqués fonctionnent correctement, il faut également ajouter le code suivant dans le formulaire de commentaires :
<?php comment_parent_field(); ?>
Javascript dans les commentaires
Pour activer les effets Javascript dans les commentaires, il est nécessaire d’ajouter une ligne dans le fichier « header.php » juste avant l’appel à « wp_head() » :
if ( is_singular() ) wp_enqueue_script( 'comment-reply' );
Contraintes supplémentaires
Pour faire fonctionner l’ensemble, il faut également respecter certaines contraintes, notamment quant au nommage des attributs « id« .
- Le champ « textarea » du formulaire de commentaires devra avoir un id=”comment”,
- Le formulaire de commentaire devra être encadré par un DIV avec un id=”respond” (au lieu de <a id= »respond »></a> sur certains thèmes)
- Remplacer « Laisser un commentaire » ou « Leave a Comment » par :
<?php comment_form_title( 'Laisser un commentaire', 'Laisser un commentaire à %s' ); ?>
- Pour permettre d’annuler l’ajout d’un commentaire, il faut ajouter un lien de type « cancel ». Dans votre thème juste sous le « comment_form_title« , ajoutez le code :
<div id="cancel-comment-reply"> <small><?php cancel_comment_reply_link() ?></small> </div>
Style
Voilà pour la partie purement technique, ouf! Mais maintenant, il va falloir mettre tout ça en forme! Le nouveau code encadre chaque commentaire dans des balises « <li> » et y ajoute les classes suivantes :
- Les classes « comment« , « trackback » et « pingback » sont ajoutées en fonction du type de commentaires,
- « byuser » est ajouté si le commentaire appartient à un utilisateur enregistré,
- « comment-author-authorname » est ajouté pour des utilisateurs enregistrés spécifiques,
- « bypostauthor » est ajouté si le commentaire appartient à l’auteur de l’article,
- « odd » et « even » sont ajoutés pour les commentaires paires et impaires,
- « alt » est ajouté pour tous les autres commentaires,
- « thread-odd« , « thread-even« , et « thread-alt » fonctionnent comme odd/even/alt classes, mais sont appliqués uniquement aux commentaires de plus haut-niveau dans l’imbrication des commentaires (donc pas aux replys),
- « depth-X » est appliqué au niveau X de commentaires (commentaires imbriqués).
Séparation des Trackbacks et des commentaires
Il existait plusieurs techniques pour pouvoir séparer les commentaires et les trackbacks jusqu’à WordPress 2.6.
La version 2.7 introduit quelques nouvelles fonctions qui peuvent faciliter ces modifications dans le thème.
Tout d’abord, partons de la nouvelle boucle des commentaires qui doit ressembler à ça :
<?php if ( have_comments() ) : ?> <h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to “<?php the_title(); ?>“</h3> <ol class="commentlist"> <?php wp_list_comments(); ?> </ol> <div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <?php else : // this is displayed if there are no comments so far ?> <?php if ('open' == $post->comment_status) : ?> <!-- If comments are open, but there are no comments. --> <?php else : // comments are closed ?> <!-- If comments are closed. --> <p class="nocomments">Comments are closed.</p> <?php endif; ?> <?php endif; ?>
La première modification à faire se situe dans le fichier « single.php », où vous devrez remplacer cette ligne:
<?php comments_template(); ?>
Par celle-ci :
<?php comments_template('', true); ?>
Cette fonction « comments_template » permet de créer une variable globale « $comments_by_type » qui sera utilisée par la suite.
Il faut ensuite modifier « comments.php » pour qu’il ressemble à ça :
<?php if ( have_comments() ) : ?> <?php if ( ! empty($comments_by_type['comment']) ) : ?> <h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to “<?php the_title(); ?>”</h3> <ol class="commentlist"> <?php wp_list_comments('type=comment'); ?> </ol> <?php endif; ?> <?php if ( ! empty($comments_by_type['pings']) ) : ?> <h3 id="pings">Trackbacks/Pingbacks</h3> <ol class="commentlist"> <?php wp_list_comments('type=pings'); ?> </ol> <?php endif; ?> <div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <?php else : // this is displayed if there are no comments so far ?> <?php if ('open' == $post->comment_status) : ?> <!-- If comments are open, but there are no comments. --> <?php else : // comments are closed ?> <!-- If comments are closed. --> <p class="nocomments">Comments are closed.</p> <?php endif; ?> <?php endif; ?>
Les trackbacks seront alors affichés séparement mais comme de vrais commentaires. Pour les afficher simplement sous forme de liste, vous pouvez utiliser la technique qui suit :
Commencez par modifier votre fichier « functions.php » pour y ajouter la fonction suivante :
<?php function list_pings($comment, $args, $depth) { $GLOBALS['comment'] = $comment; ?> <li id="comment-<?php comment_ID(); ?>"><?php comment_author_link(); ?> <?php } ?>
La boucle des commentaires doit être adaptée comme ceci :
<?php if ( have_comments() ) : ?> <?php if ( ! empty($comments_by_type['comment']) ) : ?> <h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to “<?php the_title(); ?>”</h3> <ol class="commentlist"> <?php wp_list_comments('type=comment'); ?> </ol> <?php endif; ?> <?php if ( ! empty($comments_by_type['pings']) ) : ?> <h3 id="pings">Trackbacks/Pingbacks</h3> <ol class="pinglist"> <?php wp_list_comments('type=pings&callback=list_pings'); ?> </ol> <?php endif; ?> <div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <?php else : // this is displayed if there are no comments so far ?> <?php if ('open' == $post->comment_status) : ?> <!-- If comments are open, but there are no comments. --> <?php else : // comments are closed ?> <!-- If comments are closed. --> <p class="nocomments">Comments are closed.</p> <?php endif; ?> <?php endif; ?>
Dernière chose, si vous voulez modifier le compteur des commentaires pour ne pas compter les pings, il faut ajouter le code suivant dans « functions.php » :
<?php add_filter('get_comments_number', 'comment_count', 0); function comment_count( $count ) { global $id; $comments_by_type = &separate_comments(get_comments('post_id=' . $id)); return count($comments_by_type['comment']); } ?>
Si le fichier « functions.php » n’existe pas dans votre thème, il suffit de le créer!
Voilà, vous avez je pense largement de quoi bidouiller votre WordPress et ainsi avoir une excuse supplémentaire pour perdre du temps et ne pas blogguer! (Au moins je ne serai pas seul
)
Personnellement, je pense que les « threaded comments » ne sont pas indispensables pour un blog où le nombre relativement faible de commentaires permet largement de suivre la conversation. Sans compter que visuellement les commentaires imbriqués réduisent à peau de chagrin la largeur des commentaires.
Pour la pagination des commentaires, je suis pour l’instant satisfait de Paged Comments que j’ai légèrement modifié et dont le rendu est très correct.
Même si le duplicate content est censé être une histoire ancienne, j’ai préféré ne pas répéter n fois l’article sur chaque page de commentaires (Voir exemple ici). En espérant que la fonction intégrée de WordPress 2.7 sache gérer ça.
Voilà donc une version 2.7 qui promet énormément, rien que pour la nouvelle interface d’administration au design beaucoup plus élégant et pratique. Et puis je préfère les couleurs plus sombres au bleu « Windows » flashy 
Au passage, si vous voulez un peu d’aide avec WordPress, vous pouvez vous procurer le DVD de formation WordPress auquel Fran6art a contribué.
Bonne chance!
Sources : Otto Destruct, Sivel.net, Ryan, Version 2.7.
Dans la série de A à Z : Google Chrome, Tester un site Web.











87 réponses pour "WordPress 2.7 de A à Z"
Aller à la page : « 1 [2]
05 septembre 2011 -
A Second Class stamp preteen story board >:-)))
25 octobre 2011 -
[...] évolutions je vous conseille de lire les billets de PapyGeek et Fran6Art qui sont respectivement WordPress 2.7 de A à Z et WordPress 2.7 à l’utilisation, mais d’abord finissez de lire cet article et laissez un [...]
17 novembre 2011 -
Ceci est très true.I perdu mon poids juste apporté des changements dans l’alimentation, en prenant tous les végétariens et des low carb Cela m’a aidé beaucoup et je suggère à tous
17 novembre 2011 -
Páratlan téma, nagyon érdekes számomra))))
18 novembre 2011 -
Ce blog est merveilleux. Il ya toujours toutes les infos idéale dans les idées de mes doigts. Merci et continuez votre excellent travail !
08 décembre 2011 -
лучшая гильдия WOW
08 mai 2012 -
Great items from you, man. I have bear in mind your stuff previous to and you are just too fantastic. I really like what you’ve acquired here, really like what you are stating and the way in which during which you are saying it. You are making it enjoyable and you still take care of to keep it sensible. I cant wait to read far more from you. That is actually a great web site.
Aller à la page : « 1 [2]
Laisser un commentaire