21 hacks pour 21 plugins WordPress inutiles
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);
})();
</script>
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
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
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.
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]
</IfModule>
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 :
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(""", "\"", $twitterFeed);
$twitterFeed = str_replace("&apos;", "'", $twitterFeed);
$twitterFeed = str_replace("&", "&", $twitterFeed);
$clean = explode("<content type=\"html\">", $twitterFeed);
$cleandate = explode("<published>", $twitterFeed);
$amount = count($clean) - 1;
$amount = count($cleandate) - 1;
//rendu du flux
for ($i = 1; $i <= $amount; $i++) {
$cleaner = explode("</content>", $clean[$i]);
$cleanerbis = explode("</published>", $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
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.
Le chemin de navigation est un atout en ergonomie web
Dans votre fichier functions.php, ajoutez :
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 :
function mycomment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<li id="comment-<?php comment_ID() ?>">
<div class="comment-author vcard">
<?php echo get_avatar( $comment, 40 ); ?>
</div>
<div class="comment_wrap">
<?php printf(__('%s'), get_comment_author_link()) ?>
<span class="comment_date">Le <?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></span>
<?php if ($comment->comment_approved == '0') : ?><p class="awaiting">Merci pour votre commentaire.<br />Il est en attente de moderation.</p><?php endif; ?>
<?php comment_text() ?><a name="#comment-<?php comment_ID() ?>"></a>
</div>
</li>
<?php }
Pour les trackbacks :
function myping($comment, $args, $depth) {$GLOBALS['comment'] = $comment;?>
<li id="comment-<?php comment_ID() ?>">
<div class="comment-author vcard">
<span class="infocomment">
<strong><?php printf(__('%s'), get_comment_author()) ?></strong>, le <?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?>
</span><br />
<?php $test = get_comment_author_url(); if ($test != '') {?><small><a href="<?php printf(__('%s'), get_comment_author_url())?>" title="<?php the_title(); ?>"><?php the_title(); ?> - trackback de <?php printf(__('%s'), get_comment_author()) ?></a></small><br /> <?php } else {}?>
<?php comment_text() ?>
</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 :
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:
'taxonomy' => '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 :
Un exemple de ce que l'on peut faire avec le flux RSS de WordPress
Code simple :
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
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.'<p></strong><a href="'.get_permalink().'#comments" title="Commenter '.get_the_title().'">Commentez cet article !</a></strong></p><p><strong>Article original :</strong> <a href="'.get_permalink().'">'.get_the_title().'</a>.</p><hr />';}
else {
$content = $content.'<p></strong><a href="'.get_permalink().'#comments" title="Commenter '.get_the_title().'">Commentez cet article !</a></strong></p><p><strong>Article original :</strong> <a href="'.get_permalink().'">'.get_the_title().'</a>.</p><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 ^^
Voici les thématiques abordées par 21 hacks pour 21 plugins WordPress inutiles:




106 commentaires sur 21 hacks pour 21 plugins WordPress inutiles
Val - Le 16 septembre 2010, 09:18
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, 10:15
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, 15:14
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, 17:36
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, 18:55
Euh, quelle question déjà ?
BoiteaWeb - Le 19 septembre 2010, 13:14
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, 17:27
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, 09:22
@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, 09:50
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, 15:17
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, 16:47
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, 23:09
@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, 16:29
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, 11:11
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, 22:33
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, 18:44
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, 09:20
@Julien : effectivement, mon code n’est pas parfait. Je corrige ça dès que possible.
Pierre - Le 21 octobre 2010, 18:09
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, 09:39
@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, 09:58
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, 21:07
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, 13:39
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, 14:50
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, 15:23
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, 21:33
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, 12:41
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, 22:19
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, 10:14
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, 12:22
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, 14:41
Je n’utilise pas twitter Tools, mais tout simplement le hack présenté dans cet article.
billboc - Le 30 octobre 2010, 15:21
é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, 19:01
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, 01:20
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, 20:11
@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, 20:10
@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, 12:38
Est-il possible d’afficher le slug de l’article dans une colonne admin ?
Daniel Roch - Le 03 novembre 2010, 14:39
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, 09:24
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, 20:12
Merci, le script pour afficher les derniers tweets fonctionne nikel !
Olivier - Le 25 novembre 2010, 00:25
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, 08:35
La solution est ici : Flux RSS de WordPress et code source XML
Fabien - Le 30 novembre 2010, 15:10
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, 16:11
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, 20:58
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, 23:42
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, 11:41
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, 11:36
@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).
Fabien - Le 02 décembre 2010, 19:30
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, 21:08
Lol, c’est exactement ça ^^
Antoine - Le 06 décembre 2010, 10:49
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, 03:47
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, 13:11
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, 21:45
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, 14:58
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, 15:09
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, 21:46
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, 10:54
Je ne connais pas de hack pour cela, mais un très bon plugin : No Self Ping
Jean l’Énigme - Le 15 janvier 2011, 19:31
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, 14:25
Je propose un code plus simple pour le dernier tweet.
$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›');
?›
Jérôme - Le 28 février 2011, 14:05
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, 15:20
@Jérome : de quel flux Twitter parle-tu ? Je ne le vois pas.
BoiteAWeb - Le 28 février 2011, 15:23
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, 16:39
@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, 11:01
Très bon article merci mais où se copie le code GA ? Merci
Daniel Roch - Le 12 mars 2011, 21:37
@Patrick : Il faut placer le code Analytics entre les balises head de la page.
Trangsene - Le 16 mars 2011, 16:28
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, 16:59
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, 12:21
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, 15:43
Merci, ce lien m’a été bien utile.
Surferlight - Le 02 avril 2011, 21:09
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, 09:58
@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, 01:15
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, 12:53
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, 00:22
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, 10:53
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, 11:02
« 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, 12:13
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, 22:32
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, 09:20
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, 09:23
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, 10:09
@cobolian : C’est pas plus simple de passer par un fichier functions.php ?
Mylène - Le 29 juin 2011, 12:39
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, 09:28
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, 20:02
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, 08:07
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, 23:02
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, 19:40
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, 09:29
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, 17:27
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, 09:58
@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, 11:37
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, 16:05
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, 11:09
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, 17:36
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, 18:06
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, 09:34
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, 11:18
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, 16:48
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, 17:41
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, 16:45
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, 11:04
- 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, 11:29
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, 11:38
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, 11:24
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, 14:06
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, 09:48
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 le code suivant :