21 hacks pour 21 plugins WordPress inutiles

Publié le 16 septembre 2010 Optimisation technique de WordPress

Wordpress sans plugins

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 :

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXX']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

Au passage, on peut même le compresser un peu pour un peu plus de rapidité, ce qui donne :

var _gaq=_gaq||[];_gaq.push(['_setAccount','UA-XXX']);_gaq.push(['_trackPageview']);(function(){var ga=document.createElement('script');ga.type='text/javascript';ga.async=true;ga.src=('https:'==document.location.protocol?'https://ssl':'http://www')+'.google-analytics.com/ga.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s);})();

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

onclick="_gaq.push(['_trackEvent', 'categorie', 'action', valeur]);"

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é :

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

Un exemple de boutons de partage sur WordPress
Un exemple de boutons de partage sur WordPress

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

<a href="http://www.facebook.com/share.php?u=" target="blank" rel="nofollow" title="Partagez cet article sur Facebook">Partager sur facebook</a>

Partager sur Twitter

<a href="http://twitter.com/home?status=" target="blank" rel="nofollow" title="Partagez cet article sur Twitter">Partager sur Twitter</a>

Partager par email

<a href="mailto:?subject=Un%20ami%20vous%20fait%20partager%20:%20&body=Découvrez%20<strong></strong>%20:%20<a href=></a>" rel="nofollow" title="Partagez cet article par Email">Email</a>

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

<a href="http://www.blogmemes.fr/post.php?url=" target="blank" rel="nofollow" title="Partagez cet article sur BlogMeme">Partager sur Blogmeme</a>

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.

 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://adresse-de-votre-flux [R=302,NC,L]

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

<a href="http://twitter.com/home?status=" target="blank" rel="nofollow" title="Partagez cet article sur Twitter">Partager sur Twitter</a>

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 :

// Mes derniers tweets
function twitterstatut() {
  ob_start();
  //paramètres
    $username = "nomducompte"; //Nom de votre compte
    $limit = "4";//nombre de tweets à afficher
    $tweetprefix = "
	<li>"; //avant chaque tweet
    $tweetsuffix = "</li>
"; //apres chaque tweet
  //Recuperation du flux
  $feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" . $limit;
    $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $feed);
      $twitterFeed = curl_exec($ch);
      curl_close($ch);
  //nettoyage du flux
    $twitterFeed = str_replace("<", "", $twitterFeed);
    $twitterFeed = str_replace(""", "\"", $twitterFeed);
    $twitterFeed = str_replace("&apos;", "'", $twitterFeed);
    $twitterFeed = str_replace("&", "&", $twitterFeed);
    $clean = explode("", $twitterFeed);
    $cleandate = explode("", $twitterFeed);
    $amount = count($clean) - 1;
    $amount = count($cleandate) - 1;
  //rendu du flux
    for ($i = 1; $i <= $amount; $i++) {
      $cleaner = explode("", $clean[$i]);
      $cleanerbis = explode("", $cleandate[$i]);
      $mydate = strtotime($cleanerbis[0]);
      $time_diff = time() - $mydate;
      if ( $time_diff > 0 )$display = sprintf( __('%s ago'), human_time_diff( $mydate ) );
      $rendu = $tweetprefix.$cleaner[0].'<span class="petit"> ['.$display.']</span>'.$tweetsuffix;
      echo $rendu;}
    return ob_get_clean();}
add_option('cachetwithtml','0','','yes');
add_option('cachetwittimer',mktime() - 10000,'','yes');
function cachetwit() {
  $time3 = mktime();
  if ( $time3 > get_option('cachetwittimer') + 600 ) {
    $myvar = twitterstatut();
    update_option('cachetwittimer', mktime());
    if ( $myvar == '') {}
    else {update_option('cachetwithtml', $myvar);}}
echo get_option('cachetwithtml');}

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.

chemin de navigation WordPress
Le chemin de navigation est un atout en ergonomie web

Dans votre fichier functions.php, ajoutez :

// BreadCrumb
function get_breadcrumbs() {
	global $wp_query;
	if ( is_home ()) {
    echo 'Bienvenue sur NOM-DE-VOTRE-SITE !
<ul class="breadcrumbs">';
		echo '
	<li><span id="breadhome">Nos derniers articles :</span>'; }
  else {
    echo 'Vous êtes ici :
<ul class="breadcrumbs">';
		echo '
	<li><a id="breadhome" href="'. get_settings('home') .'">'. get_bloginfo('name') .'</a>';
		if ( is_category() ){
			$catTitle = single_cat_title( "", false );
			$cat = get_cat_ID( $catTitle );
			echo " » ". get_category_parents( $cat, TRUE, " » " ) ."</li>
";}
    elseif ( is_tag() )	{
			echo " » Articles sur le Thème <span id="breadtitle">» ";
      echo the_title('','', FALSE) ."</span></li>
";}
    elseif ( is_archive() && !is_category() )	{
			echo " » Archives</li>
";}
		elseif ( is_search() ) {
			echo " » Résultats de votre recherche <span id="breadtitle">» ";
      echo get_search_query() ."</span></li>
";}
		elseif ( is_404() )	{
			echo " » 404 Page non trouvée</li>
";}
		elseif ( is_single() ){
			$category = get_the_category();
			$category_id = get_cat_ID( $category[0]->cat_name );
			echo ' » '. get_category_parents( $category_id, TRUE, " » " );
			echo '<span id="breadtitle">';
      echo the_title('','', FALSE) ."</span></li>
";}
		elseif ( is_page() ) {
			$post = $wp_query->get_queried_object();
			if ( $post->post_parent == 0 ){
				echo " » ".the_title('','', FALSE)."</li>
";
			} else {
				$title = the_title('','', FALSE);
				$ancestors = array_reverse( get_post_ancestors( $post->ID ) );
				array_push($ancestors, $post->ID);
				foreach ( $ancestors as $ancestor ){
					if( $ancestor != end($ancestors) ){
						echo '<a href="'. get_permalink($ancestor) .'">'. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</a></li>
';
					} else {
						echo ' '. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</li>
';}}}}
		echo "</ul>
";}}

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 :

// Mes commentaires
function mycomment($comment, $args, $depth) {
  $GLOBALS['comment'] = $comment; ?>

	<li id="comment-">

<div class="comment-author vcard">
	
</div>


<div class="comment_wrap">
        
        <span class="comment_date">Le </span>
        comment_approved == '0') : ?>
Merci pour votre commentaire.
Il est en attente de moderation.

        <a name="#comment-"></a>
</div>

</li>

<?php }

Pour les trackbacks :

// Mes trackbacks et Pings
function myping($comment, $args, $depth) {$GLOBALS['comment'] = $comment;?>

	<li id="comment-">

<div class="comment-author vcard">
      <span class="infocomment">
        <strong></strong>, le 
      </span>
      <small><a href="" title=""> - trackback de </a></small>
 
      
</div>

</li>

<?php }

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 :

@font-face{font-family:"Nom de la font";src:url('nom-du-fichier-de-la-font.ttf')}

Puis vous l’assignez aux ids et classes désirées :

.class, #id {font-family:"Nom de la font", "autres font par défaut"}

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:

 'mycategory',
    'smallest'  => 8,
    'largest'   => 22,
    'number'    => 45,
    'separator' => '\n',
    'orderby'   => 'name',
    'order'     => 'ASC',
    'exclude'   => 5 ); ) ); ?>

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 :

Flux RSS WordPress
Un exemple de ce que l’on peut faire avec le flux RSS de WordPress

Code simple :

// personnalisation du flux rss
function insertAds($content) {
global $post;
$content = 'votre contenu'
return $content;}
add_filter('the_excerpt_rss', 'insertAds');
add_filter('the_content_rss', 'insertAds');

Code plus complexe :

  • ajout d’une miniature
  • ajout d’un lien vers l’article complet
  • ajout d’un lien vers les commentaires
// personnalisation du flux rss
function insertAds($content) {
  global $post;
	$thetitle = $post->post_title;
  if(has_post_thumbnail($post->ID)) {
		$content = '
<div>' . get_the_post_thumbnail($post->ID,'thumbnail') . '</div>
' . $content.'
</strong><a href="'.get_permalink().'#comments" title="Commenter '.get_the_title().'">Commentez cet article !</a></strong>

<strong>Article original :</strong> <a href="'.get_permalink().'">'.get_the_title().'</a>.


<hr />

';}
	else {
		$content = $content.'
</strong><a href="'.get_permalink().'#comments" title="Commenter '.get_the_title().'">Commentez cet article !</a></strong>

<strong>Article original :</strong> <a href="'.get_permalink().'">'.get_the_title().'</a>.


<hr />

';}
  return $content;}
add_filter('the_excerpt_rss', 'insertAds');
add_filter('the_content_rss', 'insertAds');

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 ^^

Daniel Roch

Fondateur, conférencier, auteur, consultant et expert SEO WordPress

121 Commentaires

Val Le 16 septembre 2010 à 9h18
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 ;)
planrencontre Le 16 septembre 2010 à 10h15
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...
Dan Le 16 septembre 2010 à 15h14
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.
Le juge SEO Le 16 septembre 2010 à 17h36
Merci pour les tuyaux! J'en ai bien besoin. Au fait tu n'as pas répondu a ma question...

@++
Daniel Roch Le 16 septembre 2010 à 18h55
Euh, quelle question déjà ?
BoiteaWeb Le 19 septembre 2010 à 13h14
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 !
Lashon Le 20 septembre 2010 à 17h27
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.
Daniel Roch Le 21 septembre 2010 à 9h22
@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, ...
Ced Le 21 septembre 2010 à 9h50
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.
Anthony Le 22 septembre 2010 à 15h17
Pas mal le script Twitter, il y aurait t-il moyen de récupérer le permalink du ou des tweets ?
Ahoo Le 22 septembre 2010 à 16h47
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
Daniel Roch Le 22 septembre 2010 à 23h09
@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.
Anthony Le 23 septembre 2010 à 16h29
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 ;)
Michel Le 25 septembre 2010 à 11h11
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
facteur-info Le 25 septembre 2010 à 22h33
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.
Julien Le 10 octobre 2010 à 18h44
Pour le fil d'ariane, sympa mais au niveau des catégorie cela reprend la page ou nous sommes. ;)
Daniel Roch Le 11 octobre 2010 à 9h20
@Julien : effectivement, mon code n'est pas parfait. Je corrige ça dès que possible.
Pierre Le 21 octobre 2010 à 18h09
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
Daniel Roch Le 22 octobre 2010 à 9h39
@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. ;)
Pierre Aulagne Le 22 octobre 2010 à 9h58
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 ?
Daniel Roch Le 22 octobre 2010 à 21h07
Pour les CSS, il faut tester et apprendre par soi-même. J'aime beaucoup Alsacréation comme site sur le sujet.
Trangsene Le 23 octobre 2010 à 13h39
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 ?
Daniel Roch Le 23 octobre 2010 à 14h50
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.
Trangsene Le 23 octobre 2010 à 15h23
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 !
Fabien Le 25 octobre 2010 à 21h33
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 ?
Daniel Roch Le 26 octobre 2010 à 12h41
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é.
billboc Le 28 octobre 2010 à 22h19
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 ;)
Daniel Roch Le 29 octobre 2010 à 10h14
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.
billboc Le 29 octobre 2010 à 12h22
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 :)

++
Daniel Roch Le 30 octobre 2010 à 14h41
Je n'utilise pas twitter Tools, mais tout simplement le hack présenté dans cet article.
billboc Le 30 octobre 2010 à 15h21
é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

;)
Trangsene Le 31 octobre 2010 à 19h01
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 ????? :-(
billboc Le 01 novembre 2010 à 1h20
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 ?
Trangsene Le 01 novembre 2010 à 20h11
@billboc, je suis aussi sur Worpress 3.0.1 avec PHP5 et en changeant $limit = "2"; j'ai bien 2 tweets d'affichés !
Daniel Roch Le 01 novembre 2010 à 20h10
@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.
Anthony Le 03 novembre 2010 à 12h38
Est-il possible d'afficher le slug de l'article dans une colonne admin ?
Daniel Roch Le 03 novembre 2010 à 14h39
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.
Delphine Le 05 novembre 2010 à 9h24
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.
PassioN @Net Le 08 novembre 2010 à 20h12
Merci, le script pour afficher les derniers tweets fonctionne nikel !
Olivier Le 25 novembre 2010 à 0h25
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
Daniel Roch Le 25 novembre 2010 à 8h35
Fabien Le 30 novembre 2010 à 15h10
Désormais WP-Minify minifie aussi le HTML : http://pix-geeks.com/webmasters/accelerer-wordpress-minify

Alors... toujours inutile selon toi ? ;)
Daniel Roch Le 30 novembre 2010 à 16h11
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.
Anthony Le 30 novembre 2010 à 20h58
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.
Fabien Le 30 novembre 2010 à 23h42
Le seul danger est au niveau des commentaires // dans le code HTML mais du beau code propre doit passer sans souci !
Antoine Le 01 décembre 2010 à 11h41
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
Daniel Roch Le 02 décembre 2010 à 11h36
@Antoine : oui, c'est tout à fait faisable ajoutant des balises
span style="color:red;"
et
/span
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).
Fabien Le 02 décembre 2010 à 19h30
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 ;)
Daniel Roch Le 02 décembre 2010 à 21h08
Lol, c'est exactement ça ^^
Antoine Le 06 décembre 2010 à 10h49
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 ;)
Eric Savina Le 22 décembre 2010 à 3h47
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
Daniel Roch Le 22 décembre 2010 à 13h11
Non, normalement la mise à jour ne modifie pas ces hacks. Je conseille cependant de faire une sauvegarde FTP du site avant. ;)
Anthony Le 25 décembre 2010 à 21h45
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...
Daniel Roch Le 26 décembre 2010 à 14h58
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...
Anthony Le 26 décembre 2010 à 15h09
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 !)
Jean l’Énigme Le 14 janvier 2011 à 21h46
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.
Daniel Roch Le 15 janvier 2011 à 10h54
Je ne connais pas de hack pour cela, mais un très bon plugin : No Self Ping
Jean l’Énigme Le 15 janvier 2011 à 19h31
Merci ! Visiblement, si dans un article on utilise un lien relatif dans le "a href", ça ne self ping pas.
BoiteaWeb Le 09 février 2011 à 14h25
Je propose un code plus simple pour le dernier tweet.
[pastacode lang="bash" provider="manual"]‹?php
$searchUrl = "http://search.twitter.com/search.atom?q=boiteaweb&rpp=1";
$load = simplexml_load_file($searchUrl);
$entry = $load->entry;
$published = $entry->published;
$content = $entry->content;
$link2 = $entry->link[1]['href'];
echo('‹img src="'.$link2.'" /›'.$content.'‹br /›‹em›'.$published.'‹/em›');
?›[/pastacode]
Jérôme Le 28 février 2011 à 14h05
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 ?
Daniel Roch Le 28 février 2011 à 15h20
@Jérome : de quel flux Twitter parle-tu ? Je ne le vois pas.
BoiteAWeb Le 28 février 2011 à 15h23
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.
Jérôme Le 28 février 2011 à 16h39
@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 :)
patrick Le 11 mars 2011 à 11h01
Très bon article merci mais où se copie le code GA ? Merci
Daniel Roch Le 12 mars 2011 à 21h37
@Patrick : Il faut placer le code Analytics entre les balises head de la page.
Trangsene Le 16 mars 2011 à 16h28
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
Silver Le 20 mars 2011 à 16h59
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!
Daniel Roch Le 21 mars 2011 à 12h21
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/
Silver Le 25 mars 2011 à 15h43
Merci, ce lien m'a été bien utile.
Surferlight Le 02 avril 2011 à 21h09
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
Daniel Roch Le 04 avril 2011 à 9h58
@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');
Surferlight Le 05 avril 2011 à 1h15
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... ;-)
Weakiz Le 28 avril 2011 à 12h53
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.
Marie-Aude Le 26 mai 2011 à 0h22
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 :)
Daniel Roch Le 26 mai 2011 à 10h53
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).
BoiteaWeb Le 26 mai 2011 à 11h02
"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 !
Daniel Roch Le 26 mai 2011 à 12h13
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.
Jaimepasgougueule Le 28 mai 2011 à 22h32
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é
Seo F1 Le 08 juin 2011 à 9h20
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 ;)
cobolian Le 08 juin 2011 à 9h23
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.
planrencontre Le 08 juin 2011 à 10h09
@cobolian : C'est pas plus simple de passer par un fichier functions.php ?
Mylène Le 29 juin 2011 à 12h39
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 !
Daniel Roch Le 30 juin 2011 à 9h28
Il ne faut pas oublier d'ajouter le code qui correspond au fichier single.php pour avoir une réelle séparation des commentaires.
Tristan Le 07 septembre 2011 à 20h02
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.
Daniel Roch Le 08 septembre 2011 à 8h07
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.
Bloody Le 13 septembre 2011 à 23h02
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.
guillaume Le 02 octobre 2011 à 19h40
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;
Daniel Roch Le 03 octobre 2011 à 9h29
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.
sia Le 03 octobre 2011 à 17h27
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
BoiteaWeb Le 04 octobre 2011 à 9h58
@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 ?
Daniel Roch Le 04 octobre 2011 à 11h37
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).
Xt@z Le 10 novembre 2011 à 16h05
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. ;)
Piotr Le 14 novembre 2011 à 11h09
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 :)
Daniel Roch Le 14 novembre 2011 à 17h36
J'ai recodé le hack WordPress du fil d’Ariane, mais il faudrait que je fasse un article complet dessus d'ici quelques semaines. ;)
dafunkystory Le 04 décembre 2011 à 18h06
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).
guillaume Le 05 décembre 2011 à 9h34
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
Yannick Altuna Le 16 décembre 2011 à 11h18
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
Daniel Roch Le 16 décembre 2011 à 16h48
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.
Yannick Altuna Le 16 décembre 2011 à 17h41
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?
Daniel Roch Le 17 décembre 2011 à 16h45
Je viens de tester à l'instant sur ton site, et cela fonctionne. Ne serait-ce pas un problème de cache ?
Yannick Altuna Le 19 décembre 2011 à 11h04
- 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.
Daniel Roch Le 19 décembre 2011 à 11h29
Attention au code. Il faut bien ajouter tout le bloc donné, ce qui inclut les lignes IfModule mod_rewrite.c et IfModule
Xavier Le 21 janvier 2012 à 11h38
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 :)
moodytryme Le 27 mars 2012 à 11h24
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.
julien Le 09 mai 2012 à 14h06
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
Daniel Roch Le 10 mai 2012 à 9h48
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
Ben Le 07 juillet 2012 à 1h45
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 !
Daniel Roch Le 07 juillet 2012 à 18h27
@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.
Florence Le 25 août 2012 à 7h35
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
Daniel Roch Le 27 août 2012 à 10h00
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.
davidin80 Le 29 août 2012 à 10h00
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.
Daniel Roch Le 29 août 2012 à 10h39
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.
davidin80 Le 29 août 2012 à 11h46
@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.
Djib's Le 07 septembre 2012 à 14h11
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
Daniel Roch Le 10 septembre 2012 à 9h28
@Djib's : dès que j'ai un peu de temps, je regarde ça ;)
Vanessa Le 21 juillet 2013 à 13h35
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.
Joelle Le 20 février 2014 à 14h09
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
    Daniel Roch Le 23 février 2014 à 19h05
    L'API de Twitter a malheureusement été modifiée. Il faut donc se tourner vers des tutoriaux plus récents pour faire cela.
Joelle Le 24 février 2014 à 11h04
Oui, c'est ce que j'ai pu comprendre en faisant des recherches sur le Web.


Merci, pour votre réponse.
fredl Le 09 septembre 2017 à 3h12
Une nouvelle serie de hack serait la bienvenue du moins mis a jours
    Daniel Roch Le 10 septembre 2017 à 19h37
    Je note de faire cela quand j'aurais un peu de temps, c'est vrai que ces codes pour WordPress datent un peu...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *