Au mois d'Août dernier, j'ai publié une liste de 21 plugins WordPress inutiles, mal conçus ou pas assez optimisés.
J'ai eu pas mal de retours allant de l'insulte au remerciement, et beaucoup m'ont demandé quelles alternatives je pouvais proposer.
En conséquence, je ne pouvais pas faire l'impasse sur un article avec 21 hacks pour 21 plugins WordPress inutiles. Et comme le montre le sommaire, l'article va être long...^^
Je vais me répéter à plusieurs reprises, puisqu'un des avantages de mes hacks est simple : un élément codé en dur en html sera toujours plus rapide que le même code généré en php et avec une requête en base de données. L'autre élément récurrent, c'est que cela dispense aussi de faire des mises à jour des hacks : pour information, je n'ai eu aucun bug depuis la version 2.7 de WordPress (nous en sommes aujourd'hui à WordPress 3.0.1).
Pour remplacer les plugins de statistiques
Google Analytics et WordPress
» Google Analyticator et Ultimate Google Analytics
Ces plugins servent à installer de manière automatique le code de Google Analytics sur WordPress. Mais on peut faire la même chose directement dans son thème, tout en ajoutant des paramètres supplémentaires pour un meilleur suivi de vos visiteurs.
Voici le code de base de GA, où XXX est l'identifiant de votre profil :
Au passage, on peut même le compresser un peu pour un peu plus de rapidité, ce qui donne :
Je pourrais faire des dizaines d'articles sur comment paramétrer et utiliser GA, mais ce n'est pas l'objectif de cet article. Je vous invite donc à lire le Guide de Google Analytics, qui sera complété au fur et à mesure. En attendant, voici quelques bases :
- 1 seul code GA par page
- Le code est placé en haut de page, juste avant </head>
Vous pouvez ajouter des codes supplémentaires pour affiner votre analyse. Pour suivre un évènement, vous pouvez ajouter ce code sur chacun de liens ou boutons
On peut donc classer les actions dans une catégorie, et leur attribuer une valeur. Pour les variables, rien de tel que le guide des variables personnalisées de Google Analytics. Je ferais un jour un guide pour débutant pour GA, pour bien comprendre à quoi cela sert et comment s'en servir.
L'intérêt face au plugin :
- On peut tout tracker, contrairement aux plugins qui seront forcément limités (même pour les mieux conçus, puisque chaque site est unique)
- Le code est en dur, et se charge donc un peu plus vite
Source : de très nombreux sites d'aides sur Analytics, et moi-même ^^
Statistiques intégrées à WordPress
» WordPress.com Stats et WP-Stats-Dashboard
Si vous cherchez à avoir une alternative à ces plugins, vous avez tord : ne les remplacez pas, tout simplement. Si vous avez mis en place Google Analytics comme expliqué précédemment, ces outils ne vous servent plus à rien, ils sont inefficaces et incomplets.
Et si vous tenez tant que ça à avoir vos statistiques visibles dans votre admin, utilisez plutôt le plugin Google Analytics Dashboard, qui ne ralentira que l'administration de WP et vous donnera quand même les statistiques de vos visites.
L'intérêt face au plugin : ils ne servent à rien et ne font que ralentir le blog vis-à-vis de Google Analytics
Pour accélérer WordPress sans plugins
Minifiez votre thème
» Wp-minify
Comme expliqué précédemment, WP-Minify va compresser vos fichiers CSS et JS. Comme d'habitude, votre thème pourrait déjà être minifié ce qui éviterait de recourir à ce plugin. La solution est simple : copier/coller le contenu de vos fichiers dans ces deux outils, et le tour est joué :
- Minify JS
- Minify CSS
- Minify HTML (ce que ne fait pas WP-Minify)
La seule chose qu'il manque, c'est de pouvoir minifier l'html généré à partir de la base de donnée (pas celui de votre thème). Je sais que W3 Total Cache le fait. Personnellement, j'utilise WP Super Cache et DB Cache Reloaded suite à mon test des plugins de cache WordPress.
L'intérêt face au plugin : plus rapide, toujours plus rapide ^^
Source : Google est ton ami pour trouver les outils dont tu as besoin
Pour ajouter manuellement un aspect social à WordPress
Boutons de partage
» AddToAny, SexyBookmarks, Sociable ou encore Bling This
Pour ajouter facilement des fonctions de partages sur les réseaux sociaux, utilisez tout simplement les codes suivants (il ne vous restera que la mise en page à faire) :
Partager sur Facebook
Partager sur Twitter
Partager par email
Pour le partage par email, cela ouvre le client mail de l'utilisateur, en remplissant par défaut le titre du mail et une partie du contenu. Remplacez le passage après "subject" par votre contenu, sachant que %20 veut dire "espace".
Partager sur BlogMeme
Il existe bien entendu d'autres DiggLike, mais ils fonctionnent tous de la même façon : url-digglike/?url-de-mon-article. Je vous conseille d'en mettre le moins possible, avec seulement les plus pertinents. Car à chaque fois, c'est un lien de plus (dilution de pagerank), et cela peut perdre vos visiteurs avec des fonctionnalités inutiles.
L'intérêt face au plugin :
- Une charte graphique que l'on peut créer sur mesure (et qui sera originale)
- On peut séparer les boutons de partage les uns des autres
- C'est là aussi plus rapide
Source : moi-même en regardant le code source de boutons de partage quand j'en ai trouvé sur Internet
Installer Feedburner avec WordPress
» FeedBurner FeedSmith
Pourquoi utiliser un plugin qui ralentira l'administration lorsque un copier-coller fait la même chose ? Dans le fichier .htaccess situé à la racine de votre site, copiez/collez ce code en remplaçant l'adresse de votre flux Feedburner.
L'intérêt face au plugin : un plugin de moins, c'est bien !
Source : inconnue (hack trop répandu sur la toile...)
Un bouton de RT pour WP
» TweetMeme Retweet Button
Pour avoir un bouton de RT d'un article, rien de plus simple. Il suffit de réutiliser le même code que celui donné plus haut pour le partage d'un article sur Twitter...
Inconvénient, vous n'avez pas le nombre de RT. Au risque d'en décevoir certains, je ne vais malheureusement pas donner le hack aujourd'hui (ce sera le seul qui manque), car je travaille dessus avec un ami pour avoir un truc tip-top (mise en cache, personnalisation et tout ce qui va avec). A suivre d'ici 2-3 semaine.
L'intérêt face au plugin : je vais encore me répéter : c'est plus rapide, et plus facilement personnalisable, mais c'est encore incomplet.
Vos derniers Tweets sur WordPress
» Twitter for WordPress
Pour afficher vos derniers tweets, c'est un poil plus compliqué. J'ai trouvé plein de solutions différentes sur Internet, mais j'ai été obligé de les mélanger pour avoir le rendu que je voulais, c'est à dire :
- un nombre X de tweets
- sans bugs sur les caractères spéciaux
- avec l'heure du tweet affiché sous la forme "il y a x minutes"
- compatibles avec php4 et php5
- le tout mis en cache dans WordPress pendant 10 minutes.
Cela donne ce code à ajouter au fichier functions.php de votre thème. Modifiez uniquement le début avec vos paramètres :
Le cache est mis à défaut à 10 minutes (600 secondes). Vous pouvez donc le modifier facilement (6ème ligne avant la fin). Ajoutez ensuite ce code là où vous voulez afficher vos tweets.
L'intérêt face au plugin :
- Contrairement à tous les plugins que j'ai trouvés, le mien met en cache les données
- Si Twitter est indisponible, il continue d'utiliser les valeurs mises en cache
- Il affiche l'heure de tweet de manière relative
- Aucun javascript
Source : une dizaine de sites au moins, et moi-même (j'ai bien galéré ^^). Désolé de ne pas retrouver mes sources par contre : j'avais fait ce code il y a plusieurs mois...
Pour mieux gérer votre WordPress
Mise à jour automatisée de WP
» WordPress Automatic upgrade
Je ne le dirai jamais assez : ce plugin est trop risqué, puisqu'à chaque mise à jour vous risquez de planter votre site. Donc oubliez-le.
Pour booster la mise en page et ergonomie
Ajouter un fil d'Ariane (Breadcrumb)
» Yoast BreadCrumbs ou NavXt Breadcrumb
Utilisez le nouveau hack : fil d'ariane et WordPress
Un chemin de navigation est un atout pour l'ergonomie et pour hiérarchiser l'information pour les moteurs. Le code suivant permet donc de remplacer facilement ces plugins.
Dans votre fichier functions.php, ajoutez :
Puis ajoutez ensuite ce code dans votre thème WordPress pour faire apparaître votre chemin de navigation :
Le tour est joué.
L'intérêt face au plugin :
- Vous ne créez pas de liens vers la page elle-même (un lien qui pointe sur lui-même ne sert à rien pour l'utilisateur, ni pour les moteurs)
- Pas de plugin à mettre à jour
Séparer commentaires et trackbaks
» Separate Comments & Pings
Par défaut, les commentaires se mélangent aux trackbacks et pings de WordPress. Un simple hack permet de résoudre le problème.
Nous allons créer deux fonctions dans le fichier functions.php de votre thème, une pour générer vos commentaires, un autre pour vos trackbacks. Commençons par les commentaires :
Pour les trackbacks :
Pour afficher vos commentaires, ajoutez ce code dans votre fichier single.php :
Pour afficher vos trackbacks :
L'intérêt face au plugin :
- Le plugin ne faisait qu'enlever les pings, sans donner la possibilité de les afficher ailleurs
- Le hack permet d'avoir un lien sortant plus pertinent pour les trackbacks, le tout généré de façon automatique
Source : la base du code est sur presque tous les sites dédiés à WordPress. Je l'ai ensuite mis à ma sauce. ^^
Voir les navigateurs et OS de vos commentateurs
» Advanced User Agent Displayer
Non, non, non et non : ce plugin ne sert à rien. Donc je ne donnerais aucun hack en retour (ouh le vilain petit garnement !).
L'intérêt face au plugin :
- Le plugin n'avait aucun intérêt, l'absence de hack est donc indispensable ^^
Ajouter une font à WordPress
» All-In-One Cufon et WP-Cufon
Ces plugins WordPress remplacent automatiquement vos textes par des polices d'écriture que vous aurez définies dans l'administration. Le souci, c'est que tout passe par un javascript qui ajoute des bouts de code en dur dans votre html. Cela pose deux soucis : c'est un peu plus lent, et le code source n'est plus vraiment propre...
La solution est un code CSS appelé font-face, qui vous permet d'inclure proprement une police d'écriture dans votre thème WordPress. Tout d'abord, vous créez la font dans le fichier style.css :
Puis vous l'assignez aux ids et classes désirées :
Attention, veillez à choisir une font qui ne pèse pas trop lourd, ainsi qu'à ne pas en mettre partout pour ne par surcharger votre site.
L'intérêt face au plugin :
- Plus rapide
- Un code source plus propre
- Un site plus beau (enfin, normalement ^^)
Pour bannir des plugins vraiment inutiles
WordPress multilingue
» Global Translator
Je n'ai malheureusement aucun hack à vous proposer, tout simplement car ce type de plugins devrait disparaître de la surface de la terre. Un bon référencement multilingue se fait avec du multi-domaine (1 par langue). Il faut donc des serveurs différents, situés le plus proche possible (ou dans) les pays visés, avec des noms de domaine différents (.fr, .com, .es, ...) et des contenus uniques et ciblés.
L'intérêt face au plugin :
- des serveurs plus proches des utilisateurs, donc plus rapides
- des sites avec des contenus propres, donc sans duplication de contenus (si possible avec des chartes graphiques différentes adaptées aux comportement de chaque pays ou langue)
- des sites beaucoup plus simples à comprendre pour Google (car une seule langue), et donc plus facilement référencés.
Les tags sous WordPress
» WP-Cumulus
Rien de plus simple pour créer un nuage de tags sur WP. Ajoutez le code suivant là où vous voudriez le voir apparaître :
Les variables existantes sont les suivantes :
- taxonomy : d'où récupérer les tags (par défaut, c'est sur tout le site, mais on peut cibler les mots clés d'une catégorie spécifique)
- smallest : taille de police du plus petit tag
- largest : taille de police du plus grand tag
- number : nombre de mots clés à afficher
- separator : séparateur (par défaut, c'est un espace)
- orderby : trier par (name pour un tri par nom et count pour un tri par nombre d'occurrences)
- order : l'ordre de tri (ASC pour ascendant, DESC pour descendant et RAND pour aléatoire)
- exclude/include : tags à exlure ou inclure
Il existe des paramètres supplémentaires (regardez ici : wp_tag_cloud). Ce qui donne par exemple:
L'intérêt face au plugin :
- Beaucoup plus rapide à charger (car sans flash)
- Il est donc aussi compatible sur tous les navigateurs
- Vous pouvez y appliquer plus facilement votre propre feuille de style css
Source : le WordPress Codex bien entendu (en anglais)
Personnaliser le flux RSS
» RSS Footer
RSS footer est un plugin qui permet d'insérer du contenu dans votre flux RSS. Voici le code à ajouter dans votre functions.php pour faire la même chose, mais en mieux. On peut avoir ce rendu par exemple :
Code simple :
Code plus complexe :
- ajout d'une miniature
- ajout d'un lien vers l'article complet
- ajout d'un lien vers les commentaires
L'intérêt face au plugin :
- Plus de choses sont possibles techniquement (comme la miniature)
- Plus rapide lors de la génération du flux RSS de WordPress
- Toujours aucune mises à jour de plugin à faire
Conclusion
Comme la dernière fois, la conclusion est sans appel (pour ces plugins-ci du moins) :
Trop de plugins tuent les plugins.
Donc oui, il est vrai que c'est parfois un peu long à mettre en place (enfin, surtout pour trouver une solution viable), mais ca vaut le coup : un site plus rapide et ergonomique. Et quand on a des codes comme ici à copier/coller, c'est tout de suite plus rapide, non ?
PS : c'est en pondant un article de cette taille que je me dis que la charte graphique de SeoMix n'est pas du tout adaptée... :(
PS2 : chacun de ces hacks a été (ou va être) amélioré, mais je préfère faire des articles dédiés à chacun d'eux quand ce sera le cas.
PS3 : si vous ne savez pas quoi faire de votre argent, n'hésitez pas à m'en donner une ^^
123 Commentaires
Excellent! C'est exactement ce que j'attendais :) Là au moins on sait pourquoi certain plugins ne doivent pas être installé, et que faire à la place! (surtout pour moi qui ai la fâcheuse habitude d'en installer une cinquantaine et me plaindre après que ça ne marche pas :D )
Merci pour cet article ;)
Excellent !
Un article pareil, ca passe dans mes bookmarks.
Par contre, je ne suis pas 100% d'accord au niveau du multilingue. Étant belge, j'ai déjà eu a réaliser pas mal de sites bilingues ou trilingues... Pour un seul et même pays :-)
Et là, je trouve que le plugin de WPML.org fait pas trop mal le boulot...
Moi qui vais changer le thème de mon blog très prochainement, ça tombe très très bien. J'attendais ton billet avec impatience ! et je ne suis pas déçu.
Merci pour les tuyaux! J'en ai bien besoin. Au fait tu n'as pas répondu a ma question...
@++
Euh, quelle question déjà ?
J'avoue que là c'est top de proposer ces alternatives.
Je viens de toutes les lire et je n'ai rien à redire à la première lecture. bravo !
Pas mal du tout. Mais il eût été fairplay de donner tes sources car tous ces hacks sont sur la toile ou proposés par des blogueurs. Merci.
@Lashon : sauf ceux où c'est précisé, tous les hacks sont de moi. J'ai à chaque fois recoder tout à la base, notamment pour des améliorations SEO (balises ALT, ajout d'une ancre pour le lien, ...
Tu as oublié qu'il y a des pays où on parle plusieurs langues. Avoir un site en plusieurs langues sur un .be ou .ch est tout à fait pertinent.
Pas mal le script Twitter, il y aurait t-il moyen de récupérer le permalink du ou des tweets ?
Salut,
Merci pour l'astuce du fil d'Ariane !
Par contre, il manque un bout de code : ?php et ? au début et à la fin.
Du moins chez moi ça ne fonctionnait pas sans...
remarque d'un néophyte hein :p
@Anthony : tout est faisable. Je ferais un essai pour ajouter le permalink, et je ferai un petit article dessus.
@Ahoo : je pars souvent du principe que le fichier functions.php existe déjà, et que ces champs sont déjà présents... Mea culpa.
Merci Daniel pour la proposition, dans l'idéal j'aimerai bien que le texte du tweet republié soit lui-même lié à l'URL Twitter, ou alors avoir un "#" permalink après le texte du tweet ; enfin je pense être capable d'adapter ton futur code à mes envies ;)
Votre topo se situe au coeur de la question du choix entre l'ajout de fonction qui sont dédiées à un thème (donc dans functions.php) ou partageable avec d'autres thèmes et utilisateurs. Lors du dernier wordcamp, j'ai fait une petite intervention sur la stratégie à suivre pour faire ce choix. Ce choix ne sera pas évidemment le même pour un webmaster qui code et un autre qui ne code pas. En tant qu'auteur de la trilogie xili-language utilisé sur des centaines de sites multilingues et compatible multisite 3.0, je suis évidemment réservé sur votre avis sur le mutilingue. En tout cas cette extension qui respecte le modèle de données WP, demande à être sous forme d'une extension (plugin) pour notamment gérer les mises à jour et enrichir progressivement les automatismes pour les webmasters non-codeur.
A suivre peut-être sur un autre post !
Michel de dev.xiligroup.com
Très belle mise en évidence de l'importance de faire de son blogue un outil 'social'. Permettre le partage de l'information trouvée par le visiteur à son réseaux social à un double intérêt : partager pour l'un, diffuser pour l'autre.
Pour le fil d'ariane, sympa mais au niveau des catégorie cela reprend la page ou nous sommes. ;)
@Julien : effectivement, mon code n'est pas parfait. Je corrige ça dès que possible.
Bonjour,
Merci pour votre site et notamment cet article sur comment remplacer nos chers plugins.
Juste, j'ai l'impression (et c'est en fait la seule chose qui me fait encore un peu hésiter à les tester) que vous mettez un peu de côté l'esthétique de l'intégration (ex : sexy bookmarks est assez joli, idem pour pas mal de choses en lien avec les réseaux sociaux..)
Par ailleurs, comme vous le dites, je trouve votre colonne un peu étroite pour la lisibilité d'articles de cette qualité mais aussi de cette longueur). Pourquoi du fixed-width ?
Merchi
@Pierre : il est vrai que mon article laisse de côté l'aspect graphique, mais rien n'empêche d'améliorer le rendu visuel de chaque hack avec le fichier css.
Pour ce qui est du fixed-width de SeoMix, cela vient de deux choses : une volonté de ne pas étirer mes colonnes (qui seraient difficiles à lire en 1680/1050), et que mon thème ne peut s'étirer (images utilisées en haut et en bas de chaque bloc). La prochaine version de SeoMix sera bien meilleure. ;)
Dites pas ça, votre site est super, lisible et tout, juste sur un 22" comme vous avez beaucoup de commentaires intéressants à lire, ça fait pas mal d'ascenseur c'est tout ce que je voulais dire.
Par ailleurs, avez-vous des conseils sur l'apprentissage du CSS svp ?
Pour les CSS, il faut tester et apprendre par soi-même. J'aime beaucoup Alsacréation comme site sur le sujet.
Merci. Pleins de super ressources que je suis en train de tester.
Hélàs je viens de rajouter la fonction pour les Tweets dans mon fichier functions et dès que je l'appelle :
Fatal error: Call to undefined function curl_init()
Effectivement cette fonction n'est définie nulle part :-( Une idée ?
Curl est une fonction inhérente à PHP, donc elle n'a pas besoin d'être déclarée. Essaie de voir avec ton hébergeur pour voir d'où peut provenir le problème.
Je testais en local d'abord, je n'avais pas pensé à regarder de ce côté là, il a suffit que j'active curl dans le fichier de configuration php.
Merci beaucoup pour cette réponse rapide. Maintenant ça marche nickel !
Je te trouve dur quand tu dis que WP-Stats-Dashboard est incomplet. Il est clairement moins fiable qu'analytics mais coté statistiques il est franchement complet non ?
Wp-Stat donne des infos très succinctes. On ne peut faire de suivi ecommerce, ni de suivis d'évènements, ni mettre en place d'objectifs ni de tunnel de conversions. Google Analytics est vraiment plus poussé.
Bonjour, Merci pour ce travail !
par contre je n'arrive pas a afficher mes derniers tweets ?
j'ai juste le chiffre 0 qui s'affiche et rien d'autres...
j'ai inscrit le nom de mon compte twitter dans le code de functions.php pourtant...
une idée pour me dépanner ? merci beaucoup !
EDIT : Oups ! ce matin ça fonctionne un peu 8-)
il n'y a qu'un tweet affiché mais c'est déjà ça ;)
Il faut vérifier ces deux élements : $username = Nom de votre compte Twitter & $limit = nombre de tweets à afficher
Au niveau de $time3, change le chiffre 600 par 1. Cela désactivera le système de cache, et tu pourras donc tester facilement tes modifications.
merci beaucoup ;)
au fait, comment fais-tu pour afficher la date relative en français ?
car j'utilise aussi twitter-tools sur mon blog mais la date est en anglais :(
Merci pour tes lumières :)
++
Je n'utilise pas twitter Tools, mais tout simplement le hack présenté dans cet article.
étonnant... j'ai beau remplacer 600 par 1 effacer mon cache de navigateur = impossible d'actualiser l'affichage du dernier tweet.
Je viens de changer de compte, effacer encore le cache, mais c'est le tweet du compte précédent qui s'affiche ???
quel ligne faut-il enlever pour ne plus avoir la fonction de la mise en cache ?
merci pour ton aide
;)
A propos de date, c'est très étrange, ton code pour afficher ses tweets marche nickel en local, par contre sur mon hébergement chez OVH il m'affiche que mon dernier tweet date d'il y a 14914 jours, d'où ça peut venir ????? :-(
impossible d'afficher plus d'1 tweet !?!?
j'ai beau changer le nombre limit de tweet rien n'y fait
je suis sous wordpress 3.0.1 et PHP à jour...
une idée ?
@billboc, je suis aussi sur Worpress 3.0.1 avec PHP5 et en changeant $limit = "2"; j'ai bien 2 tweets d'affichés !
@Trangsene : si cela marche en local, le souci vient forcément de la configuration du serveur. Il faut demander à OVH ce qu'il en est.
@Billboc : modifie le nom de la variable "cachetwithtml" par ce que tu veux (mais remplace chaque occurrence du terme par ton nouveau nom.
Est-il possible d'afficher le slug de l'article dans une colonne admin ?
Si par Slug tu veux dire l'url courte de l'article, c'est tout à fait possible. Regarde le guide de l'admin WordPress. Il y a un passage sur l'ajout de colonnes.
Merci et encore merci, j'ai crée mon blog WordPress depuis peu, j'essaie d'éviter au maximum les plugins, mais on dirait qu'il y a un véritable tabou sur le fait de "divulguer" ce type de codes, difficile de les trouver, alors vraiment merci.
Merci, le script pour afficher les derniers tweets fonctionne nikel !
Merci pour ce très bon article.
Sais-tu comment faire pour ne pas faire apparaître dans le flux RSS les tags associés à chaque article ? (les balises XML category)
Par exemple rss.lefigaro.fr/lefigaro/laune
La solution est ici : Flux RSS de WordPress et code source XML
Désormais WP-Minify minifie aussi le HTML : http://pix-geeks.com/webmasters/accelerer-wordpress-minify
Alors... toujours inutile selon toi ? ;)
Inutile pour la partie CSS et JS, car le faire en dur évitera de recalculer la minification.
Par contre, très intéressant pour la partie HTMl si cela minifie bien le contenu des articles, et si cela est compatible avec Super Cache.
Oui, c'est compatible ! Le gain de temps est assez hallucinant avec cette combinaison. Et la minification est aussi mise en cache, donc le recalcul n'est pas vraiment un soucis.
Le seul danger est au niveau des commentaires // dans le code HTML mais du beau code propre doit passer sans souci !
Re- ;)
Concernant le fil d'Ariane, comment changer la couleur de chaque lien? Par exemple:
Accueil (en bleu) > Catégorie (en vert) > article (normal)
Via le CSS?
Novice en la matière, j'ai essayé quelques astuces prises ici où là mais sans réussite. Je me permet dc de vous importuner ici.
Merci
@Antoine : oui, c'est tout à fait faisable ajoutant des balises
et
autour des éléments à colorer (le mieux reste cependant de mettre ces styles dans le fichier style.css.
C'est un poil long à expliquer dans les commentaires, donc je ferais un article complet là dessus dans les semaines à venir (relance-moi si j'oublie).
Hérésie !!!!!!!!!
Il faut éviter le plus possible de balancer du CSS en dur dans le HTML c'est pas toi qui dira le contraire ;)
Mieux vaut une classe ou un ID, puis une belle définition bien propre dans le fichier style.css : .fil1{ color:red;}
Allez je fais ch*** je sais que c'est pour proposer une solution plus simple à un débutant en CSS ;)
Lol, c'est exactement ça ^^
Merci Daniel,
Dans ce cas, je vais attendre ton article. Si ça peut m'appréhender le CSS, c'est pas de refus.
et vive les pros du Web qui nous viennent en aide ;)
Bonjour,
Je débute avec WordPress et je trouve votre article très intéressant. Il y a toutefois une chose qui m’échappe : que ce passe t’il lorsque l’on fait une mise à jour de WordPress ? Est-ce que toutes ces modifications sont à refaire ?
Merci d’avance,
Eric
Non, normalement la mise à jour ne modifie pas ces hacks. Je conseille cependant de faire une sauvegarde FTP du site avant. ;)
Salut Daniel,
Pour le hack du dernier tweet, est-il possible de ne pas afficher les réponses @reply ?
J'ai trouvé ça : // http://yoast.com/display-latest-tweet/
Mais le script est moins rapide que le tient...
C'est beaucoup plus compliqué à mettre en place, car il faut filtrer le résultat, sans incrémenter la boucle du code. Je verrais ce que je peux faire, mais je suis assez pris en ce moment...
Le lien que je t'ai mis a un système de filtre pour les @reply, mais il gère mal la mise en cache. Après c'est sûrement compliqué à adapter avec ton code (que j'utilise et qui fonctionne très bien !)
Existe-t-il un hack pour éviter l'autoping ?
Une précision : par "autoping", j'entends le fait que WP génère un ping quand on fait un lien interne entre articles.
Je ne connais pas de hack pour cela, mais un très bon plugin : No Self Ping
Merci ! Visiblement, si dans un article on utilise un lien relatif dans le "a href", ça ne self ping pas.
Je propose un code plus simple pour le dernier tweet.
J'aime beaucoup le flux Twitter qui est présent sur LePost.fr
Penses tu qu'on peut arriver au même résultat avec ton hack ou bien avec un plugin ?
@Jérome : de quel flux Twitter parle-tu ? Je ne le vois pas.
Un plugin c'est un hack isolé, activable et désactivable.
Oui c'est faisable, je viens de regarder le code source de Lepost.fr.
Ils prennent les 10 derniers twitts, les mettents (en gros) dans un tableau puis ils font tourner le tableau toutes les X secondes.
On peut croire que ça refresh en temps réel, mais non !
Disons que ça tourne toutes les 10 secondes, ça fait 110 secondes avant de revoir le premier twitt. A moins de reste 2mn sur la meme page, vous aurez rechargé les derniers twitts s'il y en a eu.
Pour réaliser le roulement, il faut bien sur du JS/jQuery etc.
Mais ça reste tout a fait faisable.
@BoiteAWeb Cool merci. Par contre je suis une brèle en JS/jQuery etc donc ça risque d'être dûr :s
Mais merci de l'info :)
Très bon article merci mais où se copie le code GA ? Merci
@Patrick : Il faut placer le code Analytics entre les balises head de la page.
Bonjour,
Je refais un passage sur le site en espérant une mise à jour sur ce point :
Inconvénient, vous n'avez pas le nombre de RT. Au risque d'en décevoir certains, je ne vais malheureusement pas donner le hack aujourd'hui (ce sera le seul qui manque), car je travaille dessus avec un ami pour avoir un truc tip-top (mise en cache, personnalisation et tout ce qui va avec). A suivre d'ici 2-3 semaine.
Du nouveau ? :-)
Merci encore au passage pour ces excellents articles
Après insertion du code, j'ai bien les liens pour mener aux commentaires ainsi que le permalien de l'article, en revanche pas de miniature. Y a-t-il quelque chose que j'aurai raté?
Quoiqu'il en soit, merci beaucoup pour cet article qui prête à réfléchir!
La miniature doit avoir été activée dans le thème. Il y a pas mal du tutoriel là dessus sur Internet, comme ici : http://lashon.fr/tutoriaux-wordpress/wordpress-2-9-comment-utiliser-nouvelle-gestion-thumbnail-inserer-image/
Merci, ce lien m'a été bien utile.
Bonjour Daniel,
Tout d'abord merci pour tout ces hacks, ils me sont très utile. J'essaye de suivre aussi ton conseil sur le fait de regrouper les fichiers java-script en un seul, mais là j'ai un petit souci. En effet pas moins de 6 fichiers .js sont appelés par la fonction wp-head()de mon header et la je ne sais pas comment faire pour remplacer/supprimer toutes ces lignes contre une seul (qui sera l'appel du fichier .js unique). Je cale donc si une bonne âme pouvait m'aider.
merci
@Surferlight : en réalité, ils sont appelé dans le head par des fonctions register. Il faut donc trouvé le nom du script et effectuer l'action inverse dans le fichier functions.php de son thème.
Par exemple, la ligne suivant enlève le fichier css du plugin Contact Form 7 :
wp_deregister_style('contact-form-7');
Merci pour ta réponse, en fait apparemment cela ne fonctionne qu'avec les scripts inséré avec la méthode wp_enqueue_script ou wp_enqueue_style. De plus cela ne fonctionne pas toujours. Par ex la ligne qui efface le fichier css du plugin Contact Form 7 ne fonctionne pas chez moi. Je continue mon investigation... ;-)
Merci pour les astuces avec les boutons, ça me permet d'éviter le plugin "Digg-digg", bon plugin mais j'avais peur que son code ne ralentisse mes pages.
Bonsoir
une petite inexactitude, c’est </head> et pas </header> (et même en HTML5 ^^)
Je suis assez d'accord sur le fait d'éviter les plugins inutiles, et de réécrire ceux qui ont trop de fonctionnalités, sous quelques réserves néanmoins ...
- En fonction de ce qui est touché par le plugin, ça peut ne plus marcher - ou pas - avec de nouvelles fonctions de WordPress. Il est dans ce cas nettement plus facile de désactiver un plugin que de partir à la pêche dans le thème en urgence
- entre rajouter une fonction dans le fichier functions.php du thème ou un plugin, je crains que la différence de performance soit réellement mineure (et encore plus si on utilise un cache).
- Pour beaucoup d'exemples donnés, comme les boutons sociaux, en "pratique" il vaut mieux isoler ces bouts de code dans des fichiers séparés, et les inclure, ou les appeler via une fonction. On se retrouve donc avec la logique d'un plugin. Pourquoi ça vaut mieux ? Si on fait plus d'un site, on aura tendance à les réutiliser, si le code du réseau social change il vaut mieux changer un fichier que partir à la pêche dans tous les fichiers du thème, si on change de thème on peut avoir envie de remettre certaines choses directement, etc...
En revanche, oui, un certain nombres de plugin sont totalement inutiles, notamment les plugins de stat.
Bonne continuation :)
C'est corrigé Marie-Aude. Je suis relativement d'accord avec toi sur le premier point : il faut faire attention à ce que l'on fait, car les hacks sont plus complexes à installer et à faire évoluer.
Par contre, cela fait forcément gagner du temps et de la vitesse par rapport à un plugin, car celui-ci fait souvent des filtres sur le contenu, au lieu d'ajouter la fonction en dur dans la thème (et que dans l'administration, le plugin va régulièrement faire des requêtes pour savoir s'il est à jour).
"dans l'administration, le plugin va régulièrement faire des requêtes pour savoir s'il est à jour"
Ce qui ne ralenti pas la navigation de l'utilisateur !
En fait, cela ralentira l'utilisateur s'il a beaucoup de plugins, car lorsque les requêtes seront lancées, toute l'administration sera lente (enregistrer une page, aller dans un autre menu, ...). Je le sais pas expérience sur des serveur un peu faibles qui n'arrivaient plus à suivre à cause de plugins.
Bonsoir, Merci pour ces contributions, puis-je suggérer ceci pour le breadcrumb : serait-il possible de le mettre en microformat, ce serait génial pour déclarer ce dernier comme rich snippet chez Google ;-)
merci encore
EDIT : euh, je devrai d'abord regarder le code avant de parler ! le microformat est en place !
désolé
Wahou, super article très complet. Je pense qu'il devrait beaucoup m'aider dans la création d'un template WP. Je pense surtout aux typo ;)
Et pour simplifier le tout pour que ce soit simple a réutiliser : tout mettre dans un fichier a part : un include dans le header (ou autre), puis un appel de fonction simple.
Quand tu changes de design c'est plus simple.
@cobolian : C'est pas plus simple de passer par un fichier functions.php ?
Bonjour,
Je cherche à implémenter votre solution pour séparer les commentaires des Trackbacks, mais après intégration du code, rien ne s'affiche. Auriez-vous une idée du bug? J'ai c/c le code de functions.php tout en bas de la page, donc il n'y a à priori pas de souci de ce côté.
Merci d'avance !
Il ne faut pas oublier d'ajouter le code qui correspond au fichier single.php pour avoir une réelle séparation des commentaires.
Bonjour, je chercher à rajouter une police pour modifier l'aspect du titre. J'avais eu l'idée d'utiliser font-face mais cela ne marche pas sur ma config : j'utilise le thème weaver avec un thème enfant.
Est-ce à cause du thème, si oui, comment passer outre.
Merci pour ta réponse, et surtout merci pour cet article et les autres que je vais aller découvrir.
Pour que font-face fonctionne, il faut être sûr que la police soit bien placée dans le répertoire du thème. Si jamais cela ne fonctionne pas, tu peux également faire appel à Google Font.
Très utile cet article, Daniel. ;)
Ça m'a permis de continuer le ménage dans mes plugins.
Il reste aussi la possibilité de supprimer les plugins type lightbox pour éviter que le JS et les css soient chargées sur toutes les pages.
Les plugins "Related Posts" peuvent y passer aussi. :D
Toujours dans le but d'accélérer la génération des pages,j'ai découvert une astuce, il y a peu : Séparer le fichier functions.php en 2 pour gérer le front-end et le back-end de chaque coté : http://www.screenfeed.fr/blog/accelerer-wordpress-en-divisant-le-fichier-functions-php-0548/
Merci.
hello, pas mal de truc simpatiques, petite question cela dit: quand on privilégie le code au plugin, ça induit aussi une sacré baisse en productivité et des complication de mise à jour non?!
Le code pour liké facebook doit-il être implémenter à chaque fois pour chaque article ?!
Idem pour google analytics , a chaque fois qu'une page est créée il faut rajouter manuellement le bout de code?! Ce serait dommage de ne pas pouvoir implémenter le code asynchrone automatiquement sur toute les page présente et future..?!
merci pour votre site , je vais le plébisciter;
Au contraire, c'est en général plus simple pour les mises à jour car on va coder une fonction qui correspond aux besoin du site, sans faire des mises à jour de la part de créateurs de plugins qui rajouteraient des fonctionnalités superflues.
Que ce soit pour Analytics ou pour le code "Like", on ne les ajoute qu'une fois dans la thème : tous les articles en bénéficie donc automatiquement.
Bonjour Daniel,
je me suis demandée, en terme d'optimisation du code s'il y avait un moyen, lorsqu'on utilise un plugin sur une seule page, de mettre les scripts pour le faire fonctionner uniquement sur cette page. J'ai cherché en vain.. une idée?
Merci
Sia
@Sia : oui tu peux, voici la procédure général, je ne te donne pas de code là comme ça. Aussi il faut que le plugin soit bien fait sinon tu va devoir le modifier et donc, ces modifs sautent à la prochaine mise à jour.
1) Repérer dans le code du plugin les wp_register_style (css) et les wp_register_script(js). Ces fonctions "enregistrent" en mémoire de WP les style et JS, sans les afficher/inclure.
2) Devraient suivre normalement un wp_enqueue_script/style qui lui, ajoute ce(s) fichier(s) dans le head (ou foot selon le choix)
3) Dans ton fonctions.php du thème ajouter un hack : wp_dequeue_script/style pour supprimer l'ajout de ces fichiers partout où tu ne veux pas.
4) A toi de faire un wp_enqueue_script/style là où tu le veux, de la façon que tu veux.
Par exemple dans ton header.php du theme tu peux mettre quelquechose comme :
"if( $post->ID == 123 ) {
wp_enqueue_script( 'monplugin' );
}"
etc tu comprends le système ?
C'est tout à fait faisable. Soit il faut créer un fichier single-ID.php ou page-id.php dans le thème (en remplaçant ID par l'ID de l'article), ou alors faire appel dans les fichiers single.php ou page.php à des conditions is_single(ID) ou is_page(ID).
Bonjour,
J'essaie de ne publier que la 1ère partie des articles de mon site précédés de leur "image à la une". J'ai donc essayé de mettre ce bout de code dans mon fichier functions.php mais cela ne fait rien, à part générer une erreur sur la partie admin...
Ne devrait-on pas modifier plutôt les fichiers rss (tous?), c'est ce que je semble lire ici et là...
En fait, j'aimerais exactement le même aspect que seomix pour mon rss !
Merci en tt cas pour cet article utile. ;)
Bonjour,
Merci pour le fil d'ariane mais la page catégorie boucle sur elle même (le lien est cliquable) à la fin du fil :/
Avez-vous le correctif à nous proposer ?
Merci d'avance :)
J'ai recodé le hack WordPress du fil d’Ariane, mais il faudrait que je fasse un article complet dessus d'ici quelques semaines. ;)
Très bel article.
Je reviens sur la problématique des mises à jour evoquées par Guillaume:
"quand on privilégie le code au plugin, ça induit aussi une sacré baisse en productivité et des complication de mise à jour non?!"
Je suis la même logique que Daniel pour conserver un maximum de contrôle sur l'évolution des fichiers présents dans mon installation, bonne homogenéité de mon code. De plus, si l'editeur d'un plugin n'adopte pas les standards d'ecriture de WordPress cela peut générer des conflits avec votre installation ou entre vos plugins ou encore les deux^^.
Toutefois je me permets d'ajouter une chose sur cette pensée:
1)Lorsque vous mettez WordPress à jour, n'omettez pas ensuite de passer la ligne
define('WP_DEBUG', false);
sur la valeur true dans votre fichier wp-config.php pour vous assurer que vos fonctions suivent toujours les standards d'ecriture de WordPress, et effectuer les quelques correctifs si necessaire.
(puis remettre votre wp_debug sur false une fois que votre vérification est achevée).
Salut, depuis j'ai avancé, après avoir "étudié" un peu ce cms, je comprend mieux les implications et nécessité d'éviter les plugin; Cela dit, mon fichier function.php commence à être sacrément remplit,
J'ai lu ici et la qu'il fonctionnait comme un plugin géant, le fichier function est it chargé a chaque page?! J'en ai l'impression ;
J'ai pas mal de petites questions auxquelles google ne réponds pas, par ex ,je serais curieux de savoir en combien de temps sont lu 100 ligne de code dans function.php ?!
Quand on fait un remove action/filter c'est agaçant de savoir que c'est du "cache misère"; C'est un peu annuler quelque chose qui c'est déjà passé ! En terme d'optimisation c'est un peu frustrant;
Pourquoi wordpress ne donne pas les réglages en admin pour défault-filters.php par exemple de manière à écrire dans le fichier et non gommer une rature?!
Bon c'est le matin, café! guillaume
Merci pour cet article et son suivis exemplaire. Je crois que c'est la première fois que je poste ici, je félicite donc le webmaster car je passe régulièrement sur le site.
J'essais de mettre en place le remplacement du plugin feedburner mais n'y arrive pas du tout. Voici mon .htaccess avant l'ajout des lignes de code :
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Ou dois-je rajouter le code? Dois-je réécrire les lignes "
RewriteEngine On .... " ou insérer mon code à l'intérieur?
J'ai testé plusieurs solutions mais la redirection ne se fait pas. Merci d'avance pour vos réponses.
Cordialement,
Yannick
Le code peut s'ajouter juste au dessus ou juste en dessous. Il faut juste penser à modifier l'adresse du flux dans le code donné dans cette article.
Merci Daniel pour la réponse,
J'avais bien changé l'adresse du flux, voici mon code :
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/runningonearth [R=302,NC,L]
Et rien ne se passe. Mon cas n'est pas désespéré car je peux réactiver le plugin que j'utilisais, mais l'idée de gagner quelque kilos de chargement serai super.
Vous voyez une erreur?
Je viens de tester à l'instant sur ton site, et cela fonctionne. Ne serait-ce pas un problème de cache ?
- retour du weekend -
Tu as testé sur quels site? Si tu as essayé sur mon site perso visualy-design.fr c'est normal que ça fonctionne, je n'ai pas encore désactivé le plugin, le site sur lequel il ne fonctionne pas c'est runningonearth.fr.
Je ne pense pas que se soit une histoire de cache, car après tout un weekend, sans cache activé, et testé sur 3 navigateurs différents, chez moi ça ne fonctionne pas.
Maintenant si tu me confirme que sur le site de running ça fonctionne je laisserai ça comme ça.
Attention au code. Il faut bien ajouter tout le bloc donné, ce qui inclut les lignes IfModule mod_rewrite.c et IfModule
Bonjour et merci Daniel pour ces articles très instructifs.
J'ai conscience que c'est un article un peu vieux, mais je me posais une question sur l'un de ces hacks.
Sur le hack des derniers tweets, j'ai bien rajouté la fonction comme il faut dans le functions.php, et je l'appelle depuis un widget sidebar, via un plugin (c'est un comple) : php-code widget.
Et là, sur la ligne $element->parentNode->removeChild($element); je me reçois l'erreur "Call to a member function removeChild() on a non-object".
Tu vois d'où ça pourrait venir ?
Merci d'avance :)
Merci pour ces hacks ! J'avais installé un plugin pour des réseaux sociaux, et ça installait des scripts qui ralentissaient mon site ; et je me suis débarrassée de Feedburner Smith ainsi que google analytics pour intégrer les codes directement dans mes pages.
Par contre, compresser les scripts, les pages HTML (PHP plutôt), et le CSS s'est révélé dangereux... mon site ne s'affichait plus en disant qu'il y avait une erreur dans une variable. Bref, je ne me risque plus là dedans.
Bonjour, après lecture de cet article très intéressant j'ai déjà une première question de néophyte: Pour google analytics, j'ai un plugin actuellement. Je ne comprends pas bien votre méthode. Où ajouter votre code ? Dans quel fichier du thème ?
Je poursuis l'article, il y aura peut être d'autres questions ! Merci d'avance
Pour Google Analytics, il suffit de coller le code dans le thème WordPress que vous utilisez, dans le fichier head.php (ou header.php), et de le coller juste avant la balise fermante /head
Bonjour Daniel,
Une question au sujet du hack concernant le flux twitter: Comment insérer le titre "Twitter" juste au dessus du flux en reprenant la typo et couleur par défaut des widgets du theme utilisé. Etant donné que ce hack remplace un widget il serait utile de le compléter par un titre :)
Merci !
@Ben : cela dépend de ton thème. Il faut regarder comment sont codés les titres par défaut de ton thème (par des h2, des div, ...), puis faire pareil pour mon hack.
Bonjour,
Franchement, j'adore votre site: il est clair, pertinent, et la recherche est facile.
En ce qui me concerne, je suis novice: j'ai crée mon site il y a 4 mois, et je me déplace parfois à pas de fourmis.
Pour info, j'utilise le thème pure vision.
J'ai 2 questions: la première doit vous apparaitre simple, mais pour moi, débutante, je préfère demander que, faire, n'importe quoi: elle concerne le sujet: minifier votre thème:La solution est simple : copier/coller le contenu de vos fichiers dans ces deux outils, et le tour est joué :
Quels fichiers dois-je ouvrir et où est ce que je vais les chercher ?
La deuxième concerne l'insertion des hacks dans les functions.php: par 2 fois, j'ai fait cette manipulation, sur mon site directement dans le thème wordpress, mon site a planté (je tiens à préciser , pour ne pas qu'il y est de confusion, que les balises ou codes ne venaiant pas de votre site) et pour rattraper le site, c'est chaud, car il faut que je trouve quelqu'un qui s'y connait.
Donc, là, je suis très frileuse pour ajouter un hack dans le fonction.php de mon thème wordpress, sauf si il faut l'ajouter au niveau du FTP, je ne suis pas allée voir, et je crois que je vais attendre votre réponse.
En tout cas, continuez, c'est génial d'avoir un outil comme celui-ci et pour apprendre et surtout pour pouvoir l'utiliser
Pour les fichiers à minifier, il s'agit des fichiers *.js et *.css. Vous pouvez donc en avoir un de chaque tout comme vous pouvez avoir plusieurs fichiers CSS et Javascripts : tout dépend de votre thème.
Pour les hacks, mieux vaut demander à quelqu'un qui s'y connaît si vous ne maîtrisez pas du tout PHP ou l'HTML.
Bonjour,
Je tiens tout d'abord à vous remercier pour votre site où l'on apprend toujours quelque chose.
Et c'est la cas dans cet article où certains hacks sont indispensables.
Je souhaiterais simplement savoir s'il est possible de partager la personnalisation que vous avez faites de votre flux rss sur seomix car malgré plusieurs tentatives de modification du hack proposé dans l'article je n'arrive pas à avoir la même visualisation que le vôtre.
Vous en remerciant par avance, je vous souhaite une bonne journée.
Théoriquement, le hack donné ici donne le même affichage. Mais il est vrai que mon flux est remanié par Feedburner, d'où les éventuels changements.
@Daniel Roch
Merci pour votre réponse rapide.
En effet, il doit être bien remanié car je suis très loin d'obtenir votre résultat.
En effet, j'ai systématiquement le nom de l'auteur et le nombre de commentaire affiché sans avoir le début du contenu de l'article.
@ bientôt.
Salut,
Je voulais savoir s'il était possible d'adapter le code qui affiche les derniers tweets mais par rapport à l'Api 1?1 du réseau social.
EN effet celui ci exige d'avoir crée une application et de s'y connecter avant, plus possible de récupérer les données anonymement.
merci
@Djib's : dès que j'ai un peu de temps, je regarde ça ;)
Merci pour cet article, je cherchais justement à me passer de certain plugins encombrants et, comme vous dîtes, inutiles. Il ne me manquait que les codes exacts pour pouvoir réaliser cela.
Merci encore et bonne continuation.
Bonjour,
j'ai suivi votre tuto concernant "Vos derniers Tweets sur WordPress". J'ai mis le nom de mon compte et incorporer la ligne de code dans le fichier footer.php. J'ai en ce moment un "0" qui s'affiche. Afin de tester, j'ai mis deux gazouillis; mais en vain toujours un"0". Re-recontrôler le nom du compte dans le fichier functions.php. Etant novice en php, je ne trouve malheureusement pas la solution. Auriez-vous une piste??
Merci d'avance et excellente après-midi
L'API de Twitter a malheureusement été modifiée. Il faut donc se tourner vers des tutoriaux plus récents pour faire cela.
Oui, c'est ce que j'ai pu comprendre en faisant des recherches sur le Web.
Merci, pour votre réponse.
Une nouvelle serie de hack serait la bienvenue du moins mis a jours
Je note de faire cela quand j'aurais un peu de temps, c'est vrai que ces codes pour WordPress datent un peu...
Bonjour
Dans votre partie Boutons de partage, je constate que vous mettez les liens en
rel="nofollow"
Est-ce que c'est la règle pour les liens réseaux sociaux ou est-ce préjudiciable d'avoir d'avoir des Liens nofollow internes.
L'article est ancien : le nofollow à l'époque permettait surtout de ne pas envoyer de popularité. Maintenant, ce n'est plus efficace. L'idéal est donc de recoder le lien "a href" en "button" HTML
Laisser un commentaire