17 hacks WordPress faciles à mettre en oeuvre

Les avantages d’un plugin, sans les inconvénients: le Hack

Définition Hack WordPress : Élément codé souvent inséré dans le fichier “function.php” de votre thème. Les avantages d’un Hack, c’est qu’il est bien plus rapide qu’un plugin, ne surcharge pas votre blog et ne nécessite généralement pas de mise à jour.

Aujourd’hui je vous propose 16 hacks WordPress faciles à mettre en œuvre ! Certes, le hack a des avantages mais il demande néanmoins de mettre les mains dans des fichiers sensibles et essentiels au bon fonctionnement de votre blog, aussi inutile de vous rappeler l’absolue nécessité de sauvegarder avant toute manipulation…

Hacks

 

Modifier le Gravatar Homme mystère

Si un utilisateur qui commente sur votre blog n’est pas inscrit sur Gravatar.com, c’est le gravatar par défaut qui s’affiche. Vous pouvez bien sûr modifier ce gravatar par défaut depuis la page des paramètres, mais si vous n’aimez pas ceux qui vous sont proposés, vous pouvez en personnaliser un pour votre blog.
Uploader votre gravatar personnalisé dans votre dossier images et collez le code dans “functions.php”. (Remplacez le nom du fichier image que vous voyez dans le code “nomdevotre-gravatar.jpg” par celui de votre Gravatar personnalisé)

add_filter( 'avatar_defaults', 'newgravatar' );
    function newgravatar ($avatar_defaults) {
    $myavatar = get_bloginfo('template_directory') . '/images/nomdevotre-gravatar.jpg';
    $avatar_defaults[$myavatar] = "Build Internet";
    return $avatar_defaults;
}

 

Détecter les visiteurs Google et les saluer

Placez le code ci-dessous à l’endroit ou vous voulez voir le message apparaître.

<?php
if (strpos($_SERVER[HTTP_REFERER], "google") == true) {
 echo "Bienvenue Visiteur Google!";
}
?>

 

Utiliser des Shortcodes dans vos Widgets

Si vous souhaitez ajouter des shortodes dans un widget, il vous suffit d’ajouter un filtre dans votre fichier functions.php. Vous pouvez maintenant utiliser vos shortcodes aussi bien dans les pages, articles et widgets de votre blog.

<?php add_filter('widget_text', 'do_shortcode') ?>

 

Supprimer automatiquement les liens dans les commentaires

Lorsqu’un utilisateur met un lien dans un commentaire, WordPress le convertit automatiquement en lien cliquable. Si vous souhaitez désactiver cette fonction, ajoutez le code ci-dessous dans votre fichier “functions.php”.

remove_filter('comment_text', 'make_clickable', 9);

 

Configurer l’éditeur HTML par défaut dans WordPress

Vous savez que l’éditeur par défaut de WordPress est l’éditeur visuel, si cela ne vous convient pas et que vous vous vouliez faire de l’éditeur HTML votre éditeur par défaut, ajoutez simplement le code suivant toujours dans votre fichier “functions.php”. Cette mesure de sécurité simple est très efficace.

add_filter('wp_default_editor', create_function('', 'return "html";'));

 

Exclure les pages dans la recherche WordPress

Par défaut WordPress inclus également vos pages dans les résultats de recherche, si vous voulez les exclure des résultats et n’afficher que vos articles, ajoutez le code suivant dans le fichier “functions.php”. Ce code  place le filtre pre_get_posts et donc dans le cas ci-dessous, il affichera uniquement le contenu du Blog en excluant les pages.

add_filter( 'pre_get_posts', 'tgm_exclude_pages' );
/**
 * tgm_exclude_pages Fonction.
 *
 * Cette fonction modifie la requête WordPress pour enlever les pages de la recherche.
 *
 * @param mixed $query Requete originale
 * @return $query Requete modifiee
 *
 */
function tgm_exclude_pages( $query ) {
 if ( $query->is_search )
 $query->set( 'post_type', 'post' );
 return $query;
};

 

Modifier la mise en cache via .htaccess

Si vous voulez diminuer les temps de chargement de vos fichiers “images, CSS, PDF, JS”, ajoutez le code suivant à votre fichier “.htaccess” (via FTP uniquement). En utilisant ce code, les principaux fichiers statiques seront mis en cache afin d’accélérer les temps de chargement.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##

 

Remplacer en une fois du contenu dans vos articles

Comment ajouter ou remplacer du texte ou un lien dans tous vos messages et ce, en une seule fois.  Vous pouvez le faire en ajoutant le code suivant à votre fichier “functions.php”. Dans le cas ci-dessous, le texte “wordpress” sera mis en gras et “wordpress hack” se verra affublé d’un lien vers “wordpress.com”.

function replace_text($text) {
	$text = str_replace('WordPress', '<strong>WordPress</strong>', $text);
	$text = str_replace('WordPress hacks', '<a href="http://www.wordpress.com">WordPress hacks</a>', $text);
	return $text;
}
add_filter('the_content', 'replace_text');

 

Éliminer les spams de vos commentaires

Vous pouvez bloquer les spammeurs au lieu de les marquer en tant que spam. Le code suivant rejette tout commentaire posté  depuis un navigateur qui n’a pas de “Referer”, en général il s’agit d’un bot. Le code vérifie le “HTTP_REFERRE” et  s’il n’est pas défini ou incorrect, l’exécution est arrêtée avec le message approprié. Collez le code suivant dans votre fichier “functions.php”.

function check_referrer() {
 if (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFERER'] == &quot;&quot;) {
 wp_die( __('Merci d'activer le referrer sur votre navigateur, ou, si vous etes un spammeur, bye bye!') );
 }
}
add_action('check_comment_flood', 'check_referrer');

 

Supprimer le symbole […] des extraits de vos messages

Si vous voulez vous débarrasser de ce symbole […], vous n’aurez besoin que d’insérer le bout de code suivant dans le “functions.php” de votre thème.

function trim_excerpt($text) {
 return rtrim($text,'[...]');
}
add_filter('get_the_excerpt', 'trim_excerpt');

 

Détecter les visites en provenance des mobiles

La navigation sur mobile est en augmentation sur internet, il est donc très utile de détecter les visites en provenance d’utilisateurs dit “mobile” et ce, afin de les rediriger vers une page plus appropriée et dédiée à la navigation sur smartphone ou tablette. Pour ce faire, vous devrez tout d’abord obtenir le code complet sur le site Detect mobile browser puis transférer ce dernier dans le répertoire de votre thème, enfin modifiez votre header.php en plaçant le code suivant (n’oubliez pas de modifier la page de redirection /votre-site .com):

include('mobile_device_detect.php');
$mobile = mobile_device_detect();
if ($mobile==true) {
 header( 'Location: http://votre-site.com/?theme=Your_Mobile_Theme' ) ;
}

 

Redimensionner automatiquement les images

Si vous utilisez beaucoup d’images sur votre WordPress, alors vous savez comme il est fastidieux d’avoir à toujours redimensionner vos images manuellement. Utilisez ce hack pour redimensionner automatiquement une image de votre choix (largeur et hauteur) pour un look plus organisé. Il suffit de copier le code source suivant:  script (cliquez ici) dans un nouveau document appelé «timthumb.php», placez-le dans un dossier sur votre site (ex:/scripts/) et d’appeler l’image comme ceci:

<img src="/scripts/timthumb.php?src=/images/lenomdevotreimage.jpg&h=150&w=150&zc=1" alt="" />

 

Affichez votre Best-of annuel

Ce hack permet à vos visiteurs de voir le top 5 des articles les plus commentés de votre blog sur une année définie. C’est un excellent moyen pour redonner à vos articles une seconde chance. Pour afficher une autre période, modifiez simplement les dates. Placez le code suivant dans ??votre sidebar, ou n’importe où ailleurs:

<h2>Mes 5 articles les plus commentés en 2011</h2>
<ul>
<?php
$result = $wpdb->get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2011-01-01' AND '2011-12-31' ORDER BY comment_count DESC LIMIT 0 , 5");
foreach ($result as $topten) {
 $postid = $topten->ID;
 $title = $topten->post_title;
 $commentcount = $topten->comment_count;
 if ($commentcount != 0) {
 ?>
 <li><a href="<?php echo get_permalink($postid); ?>"><?php echo $title ?></a></li>
 <?php }
}
?>
</ul>

 

Autoriser seulement votre IP sur wp-admin

Si vous n’avez pas de blog collaboratif et donc plusieurs rédacteurs, vous devriez être le seul autorisé à visiter le répertoire wp-admin. Pour augmenter la sécurité de votre site, entrez votre adresse IP statique à la ligne 8. Vous pouvez également ajouter d’autres adresses IP, si nécessaire, en créant une nouvelle ligne. Placez le code suivant dans votre fichier .htaccess:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xx
</LIMIT>

 

Insérez une Bio Auteur sur chaque article

Il est parfois utile d’afficher la Bio de l’auteur d’un article, que ce soit sur un blog multi-auteurs ou lorsque vos articles sont repris. Si votre thème ne propose pas cette fonction, insérez le code suivant dans votre fichier functions.php. La biographie de l’auteur sera alors automatiquement affichée à la fin de chaque article:

function get_author_bio ($content=''){
 global $post;
$post_author_name=get_the_author_meta("display_name");
 $post_author_description=get_the_author_meta("description");
 $html="<div class='clearfix' id='about_author'>n";
 $html.="<img width='80' height='80' class='avatar' src='https://www.gravatar.com/avatar.php?gravatar_id=".md5(get_the_author_email()). "&default=".urlencode($GLOBALS['defaultgravatar'])."&size=80&r=PG' alt='PG'/>n";
 $html.="<div class='author_text'>n";
 $html.="<h4>Author: ".$post_author_name."</h4>n";
 $html.= $post_author_description."n";
 $html.="</div>n";
 $html.="<div class='clear'></div>n";
 $content .= $html;
 }
return $content;
}
add_filter('the_content', 'get_author_bio');

 

Envoyer automatiquement un email aux abonnés

Voici un hack pour envoyer automatiquement un email aux abonnés de votre blog WordPress à chaque publication d’un nouvel article. Insérez simplement le code ci-dessous dans le fichier “function.php” de votre thème. Pensez à sauvegarder le fichier d’origine avant toute modification.

Ce hack a été testé uniquement pour la publication de cet article mais ne sera pas mis en œuvre sur ce blog, aussi si vous voulez vous abonner et être informé de la publication des nouveaux articles de WPFormation, abonnez-vous au flux RSS ou via la Newsletter en fin d’article.

/**
 * Notifier vos membres par mail pour tout nouvel article
 */
function email_members($post_ID) {
 //global $wpdb;
 //$usersarray = $wpdb->get_results("SELECT user_email FROM $wpdb->users;");
 $wp_user_search = new WP_User_Query( array( 'fields' => array('user_email') ) );
 $usersarray = $wp_user_search->get_results();
 $arrUsers = array ();
 for ($arr = $usersarray, $mU = count ($arr), $iU = 0; $iU < $mU; $iU++) {
 $arrUsers[] = $arr[$iU]->user_email;
 } // for
 $users = implode(",", $arrUsers);

 mail($users, "Nouvel article en ligne : " . get_bloginfo('name') , "Un nouvel article est en ligne sur " . get_bloginfo('siteurl') );
 return $post_ID;
}
add_action('publish_post', 'email_members');

 

Rediriger votre Flux RSS vers FeedBurner

Chaque fois qu’un utilisateur suivra un lien depuis votre flux par défaut (http://www.votre-site.com/feed), il sera redirigé vers votre flux FeedBurner (http://feeds.feedburner.com/votre-site). Avec ce hack, même un utilisateur de votre flux RSS d’origine, sera automatiquement redirigé vers FeedBurner. Placez le code suivant dans votre fichier .htaccess:

# temp redirect wordpress content feeds to feedburner
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/votre-site [R=302,NC,L]
</IfModule>

 

Bon Hack à tous ;)

close
wpformation
NE MANQUEZ PLUS RIEN !
Inscrivez-vous pour recevoir le meilleur de WordPress dans votre boîte de réception, chaque mois.

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

A propos de l'auteur...

WPFormation

Fabrice Ducarme, spécialiste & formateur WordPress je suis éditeur, auteur et fondateur de WP Formation.com. Conférencier lors des WordCamp Paris 2013 & 2015, Marseille 2017 et au WP Tech Nantes 2014, je vous propose plus de 500 articles & tutoriaux à propos de WordPress, mes trucs & astuces mais aussi des coups de gueule...

6 commentaires pertinents à ce jour ;)

  • Salut Fabrice,

    Bien pratique cette liste, je bookmark. A tout hasard, je suis à la recherche d’un plugin ou hack qui me permettrait de faire ceci : afficher un message (sorte de mini popup) aux visiteurs qui visionnent plus de X pages. As-tu une idée de comment faire ?

  • Bonjour Robin, mis à part créer le hack sur une base existante, je ne vois pas…
    En revanche, il doit bien exister des plugins premium avec cette fonctionnalité, je regarde et je te tiens au courant si solution ;)

  • Article très interessant.
    Moi qui suis un nul en code ça tombe vraiment bien.
    Merci.

  • Merci pour cet article. Je comprends que les hacks nous évitent d’installer des plugins qui nécessitent parfois des mises à jour de sécurité. Ne doit-on pas refaire les hacks à chaque mise à jour de WordPress?

  • Bonjour Danielle,
    C’est l’un des avantages du hack pas de mises à jour.
    Certains hacks fonctionnent depuis la version 2.7 de WordPress (Cf SeoMix)

  • Une petite correction concernant le hack sur les spammeurs de commentaires :

    function check_referrer() {
    if (!isset($_SERVER[‘HTTP_REFERER’]) || $_SERVER[‘HTTP_REFERER’] == “”) {
    wp_die( __(‘Merci d\’activer le referrer sur votre navigateur, ou, si vous etes un spammeur, bye bye!’) );
    }
    }
    add_action(‘check_comment_flood’, ‘check_referrer’);