87 snippets pour améliorer votre installation WordPress

Les snippets sont des extraits de code qui peuvent s'adapter à de nombreuses installations WordPress pour améliorer la sécurité notamment.

Partager l'article

Nous vous évoquions dans un notre article précédent l’utilisation de l’extension Code Snippets qui permet d’intégrer facilement du code PHP sur votre installation WordPress.

L’idée aujourd’hui est de pouvoir intégrer des snippets afin de modifier, améliorer et transformer votre installation WordPress. Les 87 snippets qui suivent sont catégorisés de différentes manières pour que vous puissiez comprendre leur utilité, afin de les utiliser que si vous en avez réellement besoin.

Qu’est-ce qu’un snippets ?

Un extrait de code ou un fragment est une petite portion de code utilisable sur toutes les installations WordPress, elles fonctionnent sans ajout supplémentaire et s’adaptent facilement aux besoins des créateurs de sites WordPress.

Cet extrait de code a pour fonction de modifier le fonctionnement de votre WordPress, vous devez l’intégrer dans votre fichier function.php, .htaccess ou bien votre index.php qui sont disponibles dans le dossier racine de votre site web, notamment dans le dossier de votre thème enfant pour le function.php.

Également avant tout ajout de code dans ces fichiers, il est vivement conseillé de réaliser une sauvegarde de ceux-ci pour pouvoir restaurer une version fonctionnelle de votre site web.

Vous pouvez ajouter ce code en vous rendant dans ces trois espaces :

  • Extension Code Snippets
  • Un logiciel de File Transfer Protocol (Filezelia)
  • Administration de WordPress : Apparences >> Éditeur de texte

Certains des snippets que nous allons vous partager doivent s’intégrer dans d’autres fichiers, notamment le .htaccess, mais aussi le wp-config. Pour chacun des snippets une note sur la localisation du fichier sera intégrée en commentaire dans le code.

Localisation des différents fichiers :

  • .htaccess : la racine de votre site web
  • wp-config : la racine de votre site web
  • index.php : la racine de votre site web

Liste des snippets incontournables de WordPress

Les snippets qui relèvent de la sécurité de votre installation WordPress

#1 Réinitialiser les paramètres de votre site WordPress

Vous avez réalisé trop de modifications dans votre installation WordPress, vous avez besoin de repartir à zéro. Ce code est parfait pour vous.

// À intégrer dans votre fichier function.php
<?php
function set_theme_defaults() {
    $o = array(
        'avatar_default'         => 'blank',
        'avatar_rating'          => 'G',
        'category_base'          => '/thema',
        'comment_max_links'      => 0,
        'comments_per_page'      => 0,
        'date_format'            => 'd.m.Y',
        'default_ping_status'    => 'closed',
        'default_post_edit_rows' => 30,
        'links_updated_date_format' => 'j. F Y, H:i',
        'permalink_structure'    => '/%year%/%postname%/',
        'rss_language'           => 'de',
        'timezone_string'        => 'Etc/GMT-1',
        'use_smilies'            => 0,
    );
    foreach ( $o as $k => $v ){update_option($k, $v);}
    // Delete dummy post and comment.
    wp_delete_post(1, TRUE);
    wp_delete_comment(1);
    return;
}
register_activation_hook(__FILE__, 'set_theme_defaults');
?>

#2 Comment protégez votre fichier wp-config.php

Ce fichier sert au bon fonctionnement des serveurs déployés avec APACHE. Ce fichier permet de modifier les règles de sécurité et de confidentialité de votre serveur.

# À intégrer dans le fichier .htaccess
<Files wp-config.php>
order allow,deny
deny from all
</Files>

#3 Masquer les erreurs de connexion de votre site WordPress

Diminuer le nombre d’informations sensibles aux utilisateurs est un bon moyen de se prémunir des attaques informatiques sur votre installation WordPress.

// À intégrer dans votre fichier function.php
<?php
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
?>

#4 Désactiver le XML-RPC de votre installation WordPress

Ce protocole permet à des applications tierces de communiquer entre elles malgré le fait qu’elles ne reposent pas sur le même environnement de travail. Il est préférable de désactiver ce protocole de votre installation WordPress pour réduire le risque de subir une attaque informatique.

// À intégrer dans votre fichier function.php
<?php
add_filter('xmlrpc_enabled', '__return_false');
?>

#5 Augmenter le type de fichiers téléversables sur WordPress

Ce snippet permet d’ajouter de nouveau type de fichiers téléversables par WordPress. Soyez prudent, toutes les personnes qui peuvent téléverser des fichiers profiteront également de ces nouvelles règles.

Le code suivant permet d’ajouter des fichiers SVG et PSD. Pour obtenir l’ensemble des Mimes Types vous pouvez vous rendre sur le site Free Formater.

// À intégrer dans votre fichier function.php
<?php
function my_myme_types($mime_types){
$mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
$mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);
?>

#6 Suppression du numéro de version de votre WordPress

Ce snippet permet de retirer le numéro de version de votre WordPress, encore une fois c’est une simple précaution, pour éviter d’avoir une attaque. En effet, certaines versions sont plus sensibles que d’autres. Il est primordial pour vous de maintenir à jour votre installation WordPress.

// À intégrer dans votre fichier function.php
<?php
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');
?>

#7 Modifier l’adresse de connexion de son site WordPress

Pour des questions de sécurité, il est préférable de modifier l’adresse de connexion – à l’administration -de son site WordPress. En effet, c’est un bon moyen de limiter les attaques sur son site web. L’ensemble des installations WordPress ont de base la même adresse de connexion.

# À intégrer dans le fichier .htaccess
RewriteRule ^login$ http://yoursite.com/wp-login.php [NC,L]

Ainsi avec ce code, vous devez personnaliser l’URL pour ajouter votre domaine, mais vous pouvez également modifier le mot-clé « login » par celui que vous trouvez le plus adapté et sécurisé.

#8 Bloquer la zone d’administration aux utilisateurs

Ce snippet redirige vers le domaine principal l’ensemble des utilisateurs qui essaient de se connecter, mais qui ne sont pas administrateurs.

// À intégrer dans votre fichier function.php
<?php
add_action( 'init', 'blockusers_wps_init' );
function blockusers_wps_init() {
        if ( is_admin() && ! current_user_can( 'administrator' ) ) {
                wp_redirect( home_url() );
                exit;
        }
}
?>

#9 Supprimer les éléments liés à WordPress oEmbed

oEmbed est un protocole qui permet d’intégrer des pages web dans d’autres pages web. C’est un bon moyen de protéger votre contenu en désactivant oEmbed de votre installation WordPress.

// À intégrer dans votre fichier function.php
<?php
//Remove the REST API endpoint.
remove_action('rest_api_init', 'wp_oembed_register_route');
// Turn off oEmbed auto discovery.
add_filter( 'embed_oembed_discover', '__return_false' );
//Don't filter oEmbed results.
remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
//Remove oEmbed discovery links.
remove_action('wp_head', 'wp_oembed_add_discovery_links');
//Remove oEmbed JavaScript from the front-end and back-end.
remove_action('wp_head', 'wp_oembed_add_host_js');
?>

#10 Limite les requêtes malveillantes sur votre site web WordPress

L’extrait de code suivant, une fois placé dans votre fichier function.php, rejette toutes les demandes d’URL malveillantes.

// À intégrer dans votre fichier function.php
global $user_ID; if($user_ID) {
    if(!current_user_can('administrator')) {
        if (strlen($_SERVER['REQUEST_URI']) > 255 ||
            stripos($_SERVER['REQUEST_URI'], "eval(") ||
            stripos($_SERVER['REQUEST_URI'], "CONCAT") ||
            stripos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||
            stripos($_SERVER['REQUEST_URI'], "base64")) {
                @header("HTTP/1.1 414 Request-URI Too Long");
                @header("Status: 414 Request-URI Too Long");
                @header("Connection: Close");
                @exit;
        }
    }
}

Les snippets relatifs à la performance de votre installation

#11 Augmenter la mémoire interne de WordPress

C’est souvent nécessaire d’augmenter la mémoire interne allouée à votre WordPress, notamment quand vous avez beaucoup de trafics, ou beaucoup de plugins utilisés. Dans le code suivant, 256M correspond à 256Mo.

// À intégrer dans votre fichier wp-config.php
<?php
define('WP_MEMORY_LIMIT', '256M');
?>

#12 Réduire le nombre de révision sur WordPress

Cette fonctionnalité est essentielle pour conserver les versions précédentes de vos pages et articles, si jamais vos modifications ne correspondent pas à vos attentes. Néanmoins le nombre de révision peut être la cause du ralentissement de votre site web. En effet, il est facilement possible d’avoir des centaines de révisions sur vos pages lorsque vous en créez une nouvelle. Nous vous conseillons de limiter ce nombre.

// À intégrer dans votre fichier function.php
<?php 
# Maximum 5 révisions #
define('WP_POST_REVISIONS', 5);

Vous pouvez également complètement supprimer la création de révision sur vos articles et sur vos pages.

// À intégrer dans votre fichier function.php
# Désactiver toutes révisions #
define('WP_POST_REVISIONS', false);
?>

#13 Activer Contact Form 7 sur des pages spécifiques

Ce code permet d’éviter de télécharger le plugin et de le faire fonctionner que sur certaines pages, c’est un bon moyen de maintenir votre site optimisé.

// À intégrer dans votre fichier function.php
<?php
add_action( 'wp_print_scripts', 'deregister_cf7_javascript', 100 );
function deregister_cf7_javascript() {
    if ( !is_page(array(8,10)) ) {
        wp_deregister_script( 'contact-form-7' );
    }
}
add_action( 'wp_print_styles', 'deregister_cf7_styles', 100 );
function deregister_cf7_styles() {
    if ( !is_page(array(8,10)) ) {
        wp_deregister_style( 'contact-form-7' );
    }
}
?>

#14 Optimiser la mise en cache de votre installation WordPress

Afin de rendre plus rapide votre installation WordPress, nous vous conseillons d’installer ce snippet qui permet de profiter de la puissance de la mise en cache.

# À intégrer dans le fichier .htaccess
## EXPIRES CACHING ##
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"
## EXPIRES CACHING ##

#15 Inclure JQuery dans le head de vos pages

JQuery se trouve déjà sur votre installation WordPress, néanmoins pour être sûr qu’il apparaît bien au bon endroit, nous vous conseillons d’intégrer ce snippet.

// À intégrer dans votre fichier wp_head
<?php wp_enqueue_script("jquery"); ?>

#16 Ajouter des tailles d’images personnalisées supplémentaires

Lorsque vous téléverser une image sur WordPress, plusieurs tailles sont créées pour répondre aux besoins des futures pages et zones d’affichages de cette image. Néanmoins, vous aurez peut-être des besoins supplémentaires. Ce snippet permet d’ajouter d’autres tailles d’image personnalisées.

// À intégrer dans votre fichier function.php
<?php
add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode
?>

Les snippets relatifs à l’automatisation sur WordPress

#17 Supprimer automatiquement votre corbeille

Ce code permet de supprimer la corbeille de WordPress automatique, et ainsi de réduire la taille de votre installation. Le nombre correspond à la récurrence en jour de suppression de la corbeille. Dans le cas de 7, votre corbeille sera supprimée tous les 7 jours.

// À intégrer dans votre fichier function.php
<?php 
define('EMPTY_TRASH_DAYS', 7 ); 
?>

#18 Détecter un moteur de recherche

Il existe des différences notables entre les moteurs de recherche disponibles actuellement, pour une question d’accessibilité et de fonctionnement, il est parfois utile de proposer une feuille de style ou un code HTML différend en fonction du moteur de recherche. Ce snippet permet de détecter le moteur de recherche de l’utilisateur. À vous par la suite d’utiliser cette information pour modifier ou non l’expérience de l’utilisateur.

// À intégrer dans votre fichier function.php
<?php 
add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;
if($is_lynx) $classes[] = 'lynx';
elseif($is_gecko) $classes[] = 'gecko';
elseif($is_opera) $classes[] = 'opera';
elseif($is_NS4) $classes[] = 'ns4';
elseif($is_safari) $classes[] = 'safari';
elseif($is_chrome) $classes[] = 'chrome';
elseif($is_IE) $classes[] = 'ie';
else $classes[] = 'unknown';
if($is_iphone) $classes[] = 'iphone';
return $classes;
}
?>

#20 Détecter les visiteurs sur mobile

Aujourd’hui une grande partie des visiteurs utilisent leur mobile pour se rendre sur internet. Il est important de leur proposer la meilleure expérience possible. Le code suivant est un bon moyen de détecter ces visiteurs et de leur proposer un thème adapté à leur navigation.

// À intégrer dans votre fichier function.php
<?php 
include('mobile_device_detect.php');
$mobile = mobile_device_detect();
if ($mobile==true) {
header( 'Location: http://votre-site-web.com/?theme=votre_theme_mobile' ) ;
} 
?>

Vous devez modifier la ligne 5, qui correspond à la localisation de votre thème pour les visiteurs sur mobile.

#21 Régler l’enregistrement automatique sur WordPress

Cet extrait de code permet de configurer la fréquence de l’enregistrement automatique sur WordPress (lors de la création de pages ou d’articles par exemple). Le réglages s’effectue en seconde, 300 correspondant à 5 minutes.

// À intégrer dans votre fichier wp-config.php
<?php
# Enregistrement automatiquement toutes les 5 minutes #
define('AUTOSAVE_INTERVAL', 300);
?>

Ce snippet permet d’obtenir sous cette forme (exemple) 2010-2022 une date dynamique pour la date de création de votre site WordPress.

// À intégrer dans votre fichier function.php
<?php 
function comicpress_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "&copy; " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
} 
?>

#23 Nombre maximum de mots pour les titres WordPress

Un titre trop long pour vos pages ou vos articles n’est pas quelque chose de valorisé pour votre référencement, nous vous conseillons de suivre les règles en vigueur et de vous contraindre au maximum à les respecter en intégrant ce snippet.

// À intégrer dans votre fichier function.php
<?php
function maxWord($title){
global $post;
$title = $post->post_title;
if (str_word_count($title) >= 10 ) //la valeur maximale de mots que vous définissez
wp_die( __('Error: your post title is over the maximum word count.') );
}
add_action('publish_post', 'maxWord');
?>

#24 Nombre maximum de mots pour les publications WordPress

Dans la même optique que pour les titres, il est nécessaire d’avoir un certain nombre de mots pour vos articles ou vos pages. Ce snippet permet d’apporter une règle et donc un nombre de mots obligatoires par publication. Dans le cas de cet exemple, la règle est de 600 mots.

// À intégrer dans votre fichier function.php
<?php
function minWord($content){
global $post;
$num = 600; //vous pouvez modifier cette valeur
$content = $post->post_content;
if (str_word_count($content) < $num) wp_die( __('Error: your post is below the minimum word count.') ); } add_action('publish_post', 'minWord');
?>

#25 Une image avant la publication d’un article

Pour éviter la publication d’article sans image, nous vous proposons d’ajouter ce snippet pour que vous soyez informé à chaque tentative de publication sans image. En effet le texte suivant s’affichera : « Aucune image n’est attachée à votre article, merci d’en ajouter une ».

// À intégrer dans votre fichier function.php
<?php
add_action('save_post', 'wpds_check_thumbnail');
add_action('admin_notices', 'wpds_thumbnail_error');
function wpds_check_thumbnail($post_id) {
    // change to any custom post type
    if(get_post_type($post_id) != 'post')
        return;
    if ( !has_post_thumbnail( $post_id ) ) {
        // set a transient to show the users an admin message
        set_transient( "has_post_thumbnail", "no" );
        // unhook this function so it doesn't loop infinitely
        remove_action('save_post', 'wpds_check_thumbnail');
        // update the post set it to draft
        wp_update_post(array('ID' => $post_id, 'post_status' => 'draft')); 
        add_action('save_post', 'wpds_check_thumbnail');
    } else {
        delete_transient( "has_post_thumbnail" );
    }
}
function wpds_thumbnail_error()
{
    // check if the transient is set, and display the error message
    if ( get_transient( "has_post_thumbnail" ) == "no" ) {
        echo "&lt;div id='message' class='error'&gt;&lt;p&gt;&lt;strong&gt;Aucune image n'est attachée à votre article, merci d'en ajouter une.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;";
        delete_transient( "has_post_thumbnail" );
    } 
}
?>

#26 Ajuster la taille du contenu intégré

Intégrer des contenus sur votre site implique de les adapter au mieux à votre design. Grâce à cet extrait de code il est possible de modifier à la fois la hauteur et la largeur pour que cette intégration soit la plus adaptée.

// À intégrer dans votre fichier function.php
<?php
function wps_embed_size($embed_size){
    if(is_single()){
        $embed_size['height'] = 240; //valeur à modifier
        $embed_size['width']  = 380; //valeur à modifier
    }
    return $embed_size;
}  
add_filter('embed_defaults', 'wps_embed_size');
?>

#27 Intégrer automatiquement une méta description grâce à votre contenu

Cette fonctionnalité permet de générer automatiquement une méta description grâce à votre contenu. Nous vous invitons à créer une méta description unique.

// À intégrer dans votre fichier function.php
<?php
function create_meta_desc() {
    global $post;
if (!is_single()) { return; }
     $meta = strip_tags($post->post_content);
    $meta = strip_shortcodes($post->post_content);
    $meta = str_replace(array("n", "r", "t"), ' ', $meta);
    $meta = substr($meta, 0, 125); 
    echo "<meta name='description' content='$meta' />";
}
add_action('wp_head', 'create_meta_desc');
?>

#28 Catégoriser et tagger automatiquement les publications sur WordPress

Ce snippet permet d’ajouter automatiquement une catégorie et un tag à vos articles.

// À intégrer dans votre fichier function.php
<?php
add_action( 'wp_insert_post', 'update_post_terms' );
function update_post_terms( $post_id ) {
    if ( $parent = wp_is_post_revision( $post_id ) )
        $post_id = $parent;
    $post = get_post( $post_id );
    if ( $post->post_type != 'post' )
        return;
    // add a tag
    wp_set_post_terms( $post_id, 'new tag', 'post_tag', true );
    // add a category
    $categories = wp_get_post_categories( $post_id );
    $newcat = get_term_by( 'name', 'Some Category', 'category' ); 
    array_push( $categories, $newcat->term_id );
    wp_set_post_categories( $post_id, $categories );
}
?>

#29 Supprimer les mots courts de vos URL

Afin de rendre vos URL plus lisibles nous vous conseillons d’intégrer ce code, qui permet de supprimer les mots de moins de 3 lettres.

// À intégrer dans votre fichier function.php
<?php
add_filter('sanitize_title', 'remove_short_words');
function remove_short_words($slug) {
    if (!is_admin()) return $slug;
    $slug = explode('-', $slug);
    foreach ($slug as $k => $word) {
        if (strlen($word) < 3) {
            unset($slug[$k]);
        }
    }
    return implode('-', $slug);
}
?>

#30 Ajouter l’attribut nofollow à des liens ou à tous les liens

Ce code permet de gérer le lien entre votre site et les sites des autres créateurs sur internet, en permettant d’ajouter l’attribut nofollow. Pour ajouter l’attribut grâce au code en dessous, vous devez indiquer l’URL à la troisième ligne.

// À intégrer dans votre fichier function.php
<?php
function example_link_nofollow( $content ) {
    $url  ='http://exemple.com';
        $content = str_replace( '&lt;a href="'.$url.'', '&lt;a rel="nofollow" href="'.$url.'', $content );
    return $content;
}
add_filter('the_content','example_link_nofollow');
?>

Le code suivant lui permet d’ajouter l’attribut nofollow à l’ensemble des liens dans the_content.

// À intégrer dans votre fichier function.php
<?php
function example_all_links_nofollow( $content ){
        $content = str_replace( '&lt;a href="', '&lt;a rel="nofollow" href="', $content );
    return $content;
}
add_filter('the_content','example_all_links_nofollow');
?>

#31 Rediriger un utilisateur après une inscription réussie

Pour améliorer l’expérience utilisateur de votre site web, nous vous conseillons de réaliser une redirection vers une page spécifique pour l’utilisateur qui vient de s’inscrire. Vers une page de remerciement, ou bien vers une page HUB qui permet d’informer l’utilisateur de l’ensemble du contenu de votre site.

// À intégrer dans votre fichier function.php
<?php
function wps_registration_redirect(){
    return home_url( '/finished/' );
}
add_filter( 'registration_redirect', 'wps_registration_redirect' );
?>

Dans le cas de ce code, l’utilisateur retour à la page d’accueil une fois qu’il est inscrit.

#32 Activer le mode maintenance avec WordPress

Vous souhaitez mettre à jour votre site web, le mode maintenance est un bon moyen de travailler sur votre site web sans que les utilisateurs puissent s’y rendre. Néanmoins, si vous utilisez Elementor ou Elementor Pro, nous vous conseillons d’utiliser le mode maintenance intégré. Le chemin avec Elementor est le suivant : Elementor >> Outils >> Mode maintenance >> Sélectionner le mode >> Maintenance >> Enregistrer.

// À intégrer dans votre fichier function.php
<?php
function maintenance_mode() {
if ( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) {
die('Maintenance.');
}
}
add_action('get_header', 'maintenace_mode’);
?>

Pensez à mettre le snippet en commentaire lorsque vous souhaitez désactiver le mode maintenance de votre site web.

#33 Afficher le nombre de comptes enregistrés sur votre installation WordPress

Pour obtenir automatiquement et rapidement cette information, il suffit d’intégrer cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
// Function to return user count
function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');
?>

#34 Activer les shortcodes dans les widgets de texte

Cette fonctionnalité est initialement désactivée par WordPress, si vous souhaitez l’activer, vous devez intégrer ce code sur votre installation.

// À intégrer dans votre fichier function.php
<?php
// Enable shortcodes in text widgets
add_filter('widget_text','do_shortcode');
?>

#35 Lier automatiquement vos images mises en avant à vos articles

Tous les thèmes ne permettent pas de réaliser cette opération, nous vous conseillons donc d’intégrer cette fonctionnalité sur votre installation avec cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
function wpb_autolink_featured_images( $html, $post_id, $post_image_id ) {
If (! is_singular()) { 
$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html; 
} else {
return $html;
}
}
add_filter( 'post_thumbnail_html', 'wpb_autolink_featured_images', 10, 3 );
?>

Les snippets relatifs à la création d’articles sur WordPress

#36 Filtrer les articles mis en avant

Ce filtre ne prend en compte que les articles identifiés comme mis en avant : Public >> Mettre cet article en avant sur la page d’accueil.

// À intégrer dans votre fichier index.php
<?php
query_posts('showposts=5&amp;category_name=featured');
if ( have_posts() ) : while ( have_posts() ) : the_post();
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<p><?php the_content(); ?></p>
endwhile; else:
endif;
wp_reset_query(); 
?>

#37 Autoriser les contributeurs à télécharger des images

Afin de vous éviter de changer les privilèges ou les droits des comptes « contributeurs » nous vous conseillons d’ajouter ce code pour leur permettre de téléverser des images sur leurs articles.

// À intégrer dans votre fichier function.php
if ( current_user_can('contributor') && !current_user_can('upload_files') )
     add_action('admin_init', 'allow_contributor_uploads');
     function allow_contributor_uploads() {
          $contributor = get_role('contributor');
          $contributor->add_cap('upload_files');
     }

#38 Ajouter un texte par défaut sur vos publications WordPress

Ce code donne la possibilité d’ajouter un texte par défaut sur l’ensemble de vos publications. Ce code n’est pas rétroactif, le texte n’apparaîtra que sur les nouvelles publications de votre site web.

// À intégrer dans votre fichier function.php
<?php
add_filter( 'default_content', 'my_editor_content' );
function my_editor_content( $content ) {
$content = "Vous avez utilisé ce code grâce à l'article du site diOptera.fr";
return $content;
}
?>

#39 Ajouter un texte par défaut sous vos publications WordPress

Il est possible d’ajouter un texte en dessous de vos publications pour rappeler l’interdiction de les copier, mais également pour remercier les lecteurs.

// À intégrer dans votre fichier function.php
<?php
function add_post_content($content) {
if(!is_feed() &amp;&amp; !is_home()) {
$content .= '<p>Cet article est protégé par le droit d'auteur.</p>';
}
return $content;
}
add_filter('the_content', 'add_post_content');
?>

#40 Mettre en avant l’article le plus populaire de chacune de vos catégories

Une bonne manière d’intéresser votre lecteur, c’est mettre en avant les articles les plus populaires. Vous pouvez réaliser cette opération avec un simple snippet.

// À intégrer dans votre fichier function.php
<?php
$args=array(
'cat' => 3,
'orderby' => 'comment_count',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 6,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) { ?>
<ul>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php }
wp_reset_query(); ?>

Néanmoins, pour que le code fonctionne parfaitement, vous devez modifier deux informations, la catégorie, ainsi que le nombre de publications que vous souhaitez mettre en avant.

'cat' => 3, // en fonction de la catégorie

'posts_per_page' => 6, // en fonction du nombre de publications

#41 Intégrer une date relative à mes articles WordPress

Afin de ne plus avoir une date fixe du type : 21/08/2020 sur votre article, vous pouvez intégrer une date relative du type : il y a deux jours ; il y a trois ans. Ainsi, vous pouvez utiliser ce système à la fois pour vos articles, vos pages ou vos commentaires.

// À intégrer dans votre fichier function.php
<?php

// Pour articles et pages 
<?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' ago'; 

// Pour commentaires
<?php echo human_time_diff(get_comment_time('U'), current_time('timestamp')) . ' ago';

?>

#42 Exclure des articles et des pages de la recherche de WordPress

Vous ne souhaitez pas que des articles ou des pages dans vos résultats de recherche, vous pouvez ajouter cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
// search filter
function fb_search_filter($query) {
if ( !$query->is_admin &amp;&amp; $query->is_search) {
$query->set('post__not_in', array() ); // à vous de mettre les ID des pages correspondantes, séparés par des virgules.
}
return $query;
}
add_filter( 'pre_get_posts', 'fb_search_filter' );
?>

Pour exclure des sous-pages, vous devez intégrer un nouveau code.

// À intégrer dans votre fichier function.php
<?php
// search filter
function fb_search_filter($query) {
if ( !$query->is_admin &amp;&amp; $query->is_search) {
$pages = array(2, 40, 9); // à vous de mettre les ID des pages correspondantes, séparés par des virgules.
// à vous de mettre les ID des sous-pages correspondantes, séparés par des virgules.
>foreach( $pages as $page ) {
$childrens = get_pages( array('child_of' => $page, 'echo' => 0) );
}
// numéro de table où apparaît la page dans votre tableau WordPress
>for($i = 0; $i < sizeof($childrens); ++$i) { $pages[] = $childrens[$i]->ID;
}
$query->set('post__not_in', $pages );
}
return $query;
}
add_filter( 'pre_get_posts', 'fb_search_filter' );
?>

#43 Comment numéroter vos articles sur WordPress

Vous pouvez ajouter une forme de numérotation sur l’ensemble de vos articles, par exemple : Article 1, Article 2, Article 3, ou encore Billet 1, Billet 2, etc. Pour ce faire vous devez ajouter cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
function updateNumbers() {
global $wpdb;
$querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ";
$pageposts = $wpdb->get_results($querystr, OBJECT);
$counts = 0 ;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$counts++;
add_post_meta($post->ID, 'incr_number', $counts, true);
update_post_meta($post->ID, 'incr_number', $counts);
endforeach;
endif;
}
add_action ( 'publish_post', 'updateNumbers' );
add_action ( 'deleted_post', 'updateNumbers' );
add_action ( 'edit_post', 'updateNumbers' );
?>

Intégrer par la suite dans votre template de page article le code suivant.

<?php echo get_post_meta($post->ID,'incr_number',true); ?>

#44 Afficher aléatoirement vos articles WordPress

Afin de changer l’ordre d’affichage et d’apparition de vos articles.

// À intégrer dans votre fichier function.php
<?php
<ul><li><h2>Une sélection aléatoire de mes écrits</h2>
<ul>
<?php
$rand_posts = get_posts('numberposts=5&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;orderby=rand');
foreach( $rand_posts as $post ) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
</li></ul>
?>

#45 Afficher des articles à venir sur votre site web

Ce snippet est un bon moyen de créer de l’attente vis-à-vis de votre contenu, en effet, il permet de lister des articles qui vont être publiés sur votre site web.

// À intégrer dans votre fichier function.php
<?php
<div id="zukunft">
<div id="zukunft_header"><p>Événements futurs</p></div>
<?php query_posts('showposts=10&amp;post_status=future'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div >
<p class><b><?php the_title(); ?></b><?php edit_post_link('e',' (',')'); ?><br />
<span><?php the_time('j. F Y'); ?></span></p>
</div>
<?php endwhile; else: ?><p>Aucun événement futur n'est prévu.</p><?php endif; ?>
</div>
?>

#46 Afficher les articles associés

Afin de garder votre lecteur sur votre site web et ainsi réduire votre taux de rebond.

// À intégrer dans votre fichier function.php
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
echo 'Related Posts';
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>1,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
<?php
endwhile; wp_reset();
}
}
?>

#47 Lister vos articles en fonction du nombre de commentaires

Permet également de mettre les articles les plus populaires, en fonction des interactions.

// À intégrer dans votre fichier function.php
<?php
<h2>Popular Posts</h2>
<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>
<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> {<?php echo $commentcount ?>}</li>
<?php } } ?>
</ul>
?>

#48 Afficher les articles les plus récents de votre site WordPress

// À intégrer dans votre fichier function.php
<?php query_posts('showposts=5'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>

#49 Trier les catégories par ordre de mise à jour

// À intégrer dans votre fichier function.php
<?php
$cat_array = array();
$args=array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 20,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post();
$cat_args=array('orderby' => 'none');
$cats = wp_get_post_terms( $post->ID , 'category', $cat_args);
foreach($cats as $cat) {
$cat_array[$cat->term_id] = $cat->term_id;
}
endwhile;
}
if ($cat_array) {
foreach($cat_array as $cat) {
$category = get_term_by('ID',$cat, 'category');
echo '<a href="' . esc_attr(get_term_link($category, 'category')) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a>'.'<br />';
}
}
wp_reset_query();
?>

Les snippets relatifs à la gestion de vos commentaires

#50 Nombre de mot minimum pour la publication de commentaires dans WordPress

Ce snippet a comme intérêt de réduire le nombre de spam et augmenter la qualité des commentaires de votre site WordPress en obligeant les utilisateurs à écrire des commentaires de plus de « 50 » caractères (dans notre exemple).

// À intégrer dans votre fichier function.php
<?php
add_filter( 'preprocess_comment', 'minimal_comment_length' );
function minimal_comment_length( $commentdata ) {
     $minimalCommentLength = 50; //valeur à modifier
      if ( strlen( trim( $commentdata['comment_content'] ) ) &amp;lt; $minimalCommentLength ){
       wp_die( 'Tous les commentaires doivent être d'au moins ' . $minimalCommentLength . 'caractères de longs.' );
     }
     return $commentdata;
}
?>

#51 Ajouter un numéro devant chaque commentaire

Permet d’avoir une liste des commentaires, notamment pour savoir qui sont les plus récents.

// À intégrer dans votre fichier function.php
<?php
$commcount = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
if (0 < $commcount) $commcount = number_format($commcount);
echo "Our users have made ".$commcount." comments, care to join in?";
?>

#52 Pourvoir supprimer et mettre en spam les commentaires rapidement

Permet directement sur vos pages de commentaires de pouvoir les trier les supprimer.

// À intégrer dans votre fichier function.php
<?php
function delete_comment_link($id) {
if (current_user_can('edit_post')) {
echo '| <a href="'.admin_url("comment.php?action=cdc&amp;c=$id").'">del</a> ';
echo '| <a href="'.admin_url("comment.php?action=cdc&amp;dt=spam&amp;c=$id").'">spam</a>';
}
}
?>
edit_comment_link()
delete_comment_link(get_comment_ID());

#53 Supprimer les liens automatiques des commentaires

Afin d’éviter les spammeurs dans vos zones de commentaires.

// À intégrer dans votre fichier function.php
<?php
remove_filter('comment_text', 'make_clickable', 9);
?>

#54 Mettre en évidence les commentaires de l’auteur de l’article

// À intégrer dans votre fichier style.css
.commentlist .bypostauthor {
/* -- Add a darker border - */
border: 1px #bbb solid;
/* -- CSS3 Linear Gradient -- */
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f5f5f5), to(#ddd));
background: -moz-linear-gradient(0% 100% 90deg,#ddd, #f5f5f5);
/* -- CSS3 Shadow -- */
-webkit-box-shadow:0px 0 50px #ddd;
-moz-box-shadow:0px 0 50px #ddd;
box-shadow:0px 0 50px #ddd;
}

Les Snippets relatifs à la personnalisation de votre installation WordPress

#55 Modifier le logo de connexion de WordPress

Retirer le logo de WordPress par le vôtre est une bonne manière de personnaliser votre site web. C’est un détail, mais qui marque vous prenez le temps d’améliorer au maximum l’expérience utilisateur sur votre site web. Vous devez avoir votre logo accessible dans vos médias et récupérer le lien pour le remplacer dans le code suivant : logo-admin-custom.gif.

// À intégrer dans votre fichier function.php
<?php
function my_custom_login_logo() {
echo '<style type="text/css">
h1 a { background-image:url('.get_bloginfo('template_directory').'/images/logo-admin-custom.gif) !important; }
</style>';
}
add_action('login_head', 'my_custom_login_logo');
?>

#56 Modifier le texte du pied de page de son site WordPress

Cette personnalisation s’explique difficilement aujourd’hui, surtout si vous utilisez un constructeur de thème comme Elementor, dans tous les cas ce snippet est utile si vous souhaitez personnaliser le texte de votre pied de page.

// À intégrer dans votre fichier function.php
<?php
function remove_footer_admin () {
echo 'Création par une super Agence<a href="http://superagence.paris">Super Agence</a>.';
}
add_filter('admin_footer_text', 'remove_footer_admin’);
?>

À vous de modifier le texte personnalisé.

#57 Changer le logo admin de WordPress

Dans la même veine que le snippet précédent nous vous conseillons de retirer également le logo d’administration de WordPress. Pensez toujours à ajouter l’URL de votre logo dans le code : admin_logo.png.

// À intégrer dans votre fichier function.php
<?php
function custom_admin_logo() {
echo '<style type="text/css">
#header-logo { background-image: url('.get_bloginfo('template_directory').'/images/admin_logo.png) !important; }
</style>';
}
add_action('admin_head', 'custom_admin_logo');
?>

#58 Retire la barre d’administration

La barre d’administration de WordPress fournit des liens pratiques vers plusieurs fonctions clés telles que la possibilité d’ajouter de nouveaux articles et pages, etc. Cependant, si vous n’en avez pas l’utilité et souhaitez la supprimer, vous pouvez.

// À intégrer dans votre fichier function.php
// Supprimez la barre d'administration de la partie frontale
add_filter( 'show_admin_bar', '__return_false' );

#59 Désactiver la barre latérale Widgets sur des pages spécifiques

Vous pouvez retirer facilement cette barre latérale Widgets grâce à cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
add_filter( 'sidebars_widgets', 'disable_sidebar_widgets' );
function disable_sidebar_widgets( $sidebars_widgets ) {
    if (is_single(array(1,2,4,8))) //choix des pages
        $sidebars_widgets = array( false );
            return $sidebars_widgets;
}
?>

#60 Modifier les compétences des utilisateurs sur WordPress

Grâce à ce snippet vous allez pouvoir modifier les capacités des rôles de vos utilisateurs. De cette manière vous allez pouvoir créer votre propre rôle sur votre site. L’ensemble des compétences sont ajoutées dans votre base de données. Ainsi, si vous souhaitez ajouter de nouveau une compétence retirée à un rôle vous devez utiliser la fonction add_cap().

// À intégrer dans votre fichier function.php
<?php
# Obtenir le rôle de l'utilisateur
$edit_contributor = get_role('contributor');
# Le contributeur peut télécharger des médias
$edit_contributor->add_cap('upload_files');
# Les contributeurs ne peuvent plus supprimer les messages
$edit_contributor->remove_cap('delete_posts');
?>

Vous pouvez personnaliser les compétences avec d’autres règles, nous ne vous avons donné que quelques exemples.

#61 Désactiver la connexion par e-mail sur WordPress

Les utilisateurs peuvent à la fois se connecter avec leur e-mail sur WordPress, mais aussi avec leur identifiant. Vous pouvez verrouiller le choix sur l’identifiant.

// À intégrer dans votre fichier function.php
<?php 
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
?>

#62 Ajouter ou supprimer des informations de contact sur son profil WordPress

Vous pouvez personnaliser vos informations de contact, avec des réseaux sociaux qui ne sont pas forcément intégré à WordPress, mais aussi en retiré, parce qu’ils ne vous sont pas utiles.

// À intégrer dans votre fichier function.php
<?php
function new_contactmethods( $contactmethods ) {
    $contactmethods['twitter'] = 'Twitter'; // Add Twitter
    $contactmethods['facebook'] = 'Facebook'; // Add Facebook
    unset($contactmethods['yim']); // Remove YIM
    unset($contactmethods['aim']); // Remove AIM
    unset($contactmethods['jabber']); // Remove Jabber
    return $contactmethods;
}
add_filter('user_contactmethods','new_contactmethods',10,1); 
?>

#63 Ajouter ou supprimer des informations sur le profil auteur

Vous pouvez facilement ajouter ou supprimer des champs d’informations pour les profils auteurs de votre site WordPress. Le code suivant intègre des champs Twitter et Facebook.

// À intégrer dans votre fichier function.php
<?php
function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook'; 
return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);
?>

Pour que ces nouveaux champs apparaissent il faut maintenant intégrer le code suivant dans votre modèle de page d’auteur.

<?php echo $curauth->twitter; ?>

#64 Personnaliser le bouton d’inscription de WordPress

Si votre site intègre une inscription pour les utilisateurs, il est essentiel de personnaliser cet espace. Il est également possible de le faire avec Elementor Pro et des plugins. Dans tous les cas ce snippet répond à votre besoin, il permet de modifier le texte du bouton.

// À intégrer dans votre fichier function.php
<?php
add_filter(  'gettext',  'register_text'  );
add_filter(  'ngettext',  'register_text'  );
function register_text( $translated ) {
     $translated = str_ireplace(  'Register',  'Sign Up',  $translated );
?>

#65 Modifier l’image par défaut de Gravatar

Cette fonctionnalité est également accessible sur WordPress dans la zone Réglages >> Commentaires >> Affichage des avatars >> Avatar par défaut. Néanmoins, vous n’avez la possibilité de changer l’image par défaut qu’avec une liste restreinte d’avatars.

// À intégrer dans votre fichier function.php
<?php
add_filter( 'avatar_defaults', 'wpb_new_gravatar' );
function wpb_new_gravatar ($avatar_defaults) {
$myavatar = 'http://example.com/wp-content/uploads/2017/01/wpb-default-gravatar.png';
$avatar_defaults[$myavatar] = "Default Gravatar";
return $avatar_defaults;
}
?>

À vous de changer l’URL du nouveau Avatar.

#66 Ajouter un nouvel emplacement de menu

Sur WordPress il existe des emplacements de menu personnalisés, vous pouvez en ajouter. Dans le cadre de l’exemple suivant le nouveau menu s’intitule My Custom Menu vous pouvez bien évidemment changer cette information.

// À intégrer dans votre fichier function.php
<?php
function wpb_custom_new_menu() {
register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );
?>

Le nouveau menu apparaît comme suit :

Ajout d'un emplacement de menu intitulé My Custom Menu

Maintenant, pour que cet emplacement de menu apparaissent dans votre site, vous devez ajouter cet extrait de code dans votre thème à l’emplacement convenu.

<?php
wp_nav_menu( array(
'theme_location' => 'my-custom-menu',
'container_class' => 'custom-menu-class' ) );
?>

#67 Désactiver le fonction de recherche sur votre installation WordPress

Vous n’avez pas d’articles, ni même de contenu à partager ? Aucun besoin d’une fonction de recherche.

// À intégrer dans votre fichier function.php
<?php
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
?>

#68 Désactiver le tableau de bord de bienvenu de WordPress

Si vous souhaitez alléger les pages de la zone d’administration, notamment avec ce panneau de bienvenu, ce code peut répondre à votre besoin.

// À intégrer dans votre fichier function.php
remove_action('welcome_panel', 'wp_welcome_panel');

#69 Intégrer automatiquement un champ de recherche dans votre menu

C’est essentiel dans un site web qui partage énormément de contenus.

// À intégrer dans votre fichier function.php
<?php
add_filter('wp_nav_menu_items','add_search_box', 10, 2);
function add_search_box($items, $args) {
ob_start();
get_search_form();
$searchform = ob_get_contents();
ob_end_clean();
$items .= '<li>' . $searchform . '</li>';
return $items;
}
?>

#70 Ajouter de la pagination à votre site web

Cet extrait de code ajoute de la pagination à la fin de vos pages web.

// À intégrer dans votre fichier function.php
<?php
function my_paginate_links() {
global $wp_rewrite, $wp_query;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('paged','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
'end_size' => 1,
'mid_size' => 2,
'show_all' => true,
'type' => 'list'
);
if ( $wp_rewrite->using_permalinks() )
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
if ( !empty( $wp_query->query_vars['s'] ) )
$pagination['add_args'] = array( 's' => get_query_var( 's' ) );
echo paginate_links( $pagination );
}
?>
return $items;
}
?>

#71 Désactiver les widgets standard de votre installation WordPress

Quand des widgets ne sont pas utilisés autant les désactiver, ainsi vous pouvez le faire avec les widgets suivants : commentaires récents, calendrier et recherches.

// À intégrer dans votre fichier function.php
<?php
function unregister_default_wp_widgets() {
unregister_widget('WP_Widget_Calendar');
unregister_widget('WP_Widget_Search');
unregister_widget('WP_Widget_Recent_Comments');
}
add_action('widgets_init', 'unregister_default_wp_widgets', 1);
?>

#72 Ajouter des shortcodes aux widgets

Les shortcodes ne sont pas intégrables dans les widgets, seulement dans les articles et les pages, avec cet extrait de code vous pourrez maintenant les y ajouter.

// À intégrer dans votre fichier function.php
add_filter('widget_text', 'do_shortcode');

#73 Changer la police d’écriture de l’éditeur HTML

Pour pousser la personnalisation à fond, voici un snippet fondamentalement inutile.

// À intégrer dans votre fichier function.php
<?php
function change_editor_font(){
echo "<style type='text/css'>
#editorcontainer textarea#content {
font-family: Monaco, Consolas, "Andale Mono", "Dejavu Sans Mono", monospace;
font-size:14px;
color:#333;
}
</style>";
} add_action("admin_print_styles", "change_editor_font");
?>

#74 Changer le style de l’éditeur visuel

Cette modification nécessite d’ajouter un nouveau fichier style.css. Par exemple, visuel-style.css, puis d’intégrer le code personnalisé suivant.

// À intégrer dans votre fichier function.php
<?php
add_filter('mce_css', 'my_visuel_style');
function my_visuel_style($url) {
if ( !empty($url) )
$url .= ',';
// Change the path here if using sub-directory
$url .= trailingslashit( get_stylesheet_directory_uri() ) . 'visuel-style.css';
return $url;
}
?>

#75 Mettre les noms des fichiers téléversés en minuscule

// À intégrer dans votre fichier function.php
add_filter( 'sanitize_file_name', 'mb_strtolower' );

#76 Autoriser les smileys

// À intégrer dans votre fichier function.php
add_filter( 'widget_text', 'convert_smilies' );
add_filter( 'the_title', 'convert_smilies' );
add_filter( 'wp_title', 'convert_smilies' );
add_filter( 'get_bloginfo', 'convert_smilies' );

Des extraits de code pour votre installation WooCommerce

#77 Ajouter un fil d’Ariane personnalité pour la page d’accueil

Pour changer l’URL dans les « breadcrumbs » de WooCommerce vous pouvez utiliser cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
add_filter( 'woocommerce_breadcrumb_home_url', 'woo_custom_breadrumb_home_url' );
function woo_custom_breadrumb_home_url() {
    return get_permalink(6);
}
?>

#78 Ajouter un délimiteur dans votre fil d’Ariane personnalisé

Ce code permet de définir un délimiteur pour votre fil d’Ariane. Vous pouvez personnaliser le code, e modifiant cette section : $defaults[‘delimiter’] = ‘>’ par le délimiteur que vous souhaitez (‘|’ ; ‘-‘ ou encore ‘\’).

// À intégrer dans votre fichier function.php
<?php
add_filter( 'woocommerce_breadcrumb_defaults', 'wps_breadcrumb_delimiter' );
function wps_breadcrumb_delimiter( $defaults ) {
  $defaults['delimiter'] = ' > ';
  return $defaults;
}
?>

#79 Supprimer les avis sur les produits de votre boutique

Avec ce simple snippet vous pouvez retirer les avis de votre site web reposant sur WooCommerce.

// À intégrer dans votre fichier function.php
<?php
remove_action('woocommerce_product_tabs', 'woocommerce_product_reviews_tab', 30);
remove_action('woocommerce_product_tab_panels', 'woocommerce_product_reviews_panel', 30);
?>

#80 Supprimer les onglets de WooCommerce

Il est possible de retirer les onglets de WooCommerce avec cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10);
?>

#81 Supprimer le fil d’Ariane dans WooCommerce

// À intégrer dans votre fichier function.php
<?php
add_action('template_redirect', 'remove_shop_breadcrumbs' );
function remove_shop_breadcrumbs(){
    if (is_shop())
        remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0); 
}
?>

#82 Retirer obligation du numéro de téléphone WooCommerce

Cet extrait permet de retirer l’obligation du champ numéro de téléphone dans WooCommerce.

// À intégrer dans votre fichier function.php
<?php
add_filter( 'woocommerce_billing_fields', 'wps_remove_filter_phone', 10, 1 );
function wps_remove_filter_phone( $address_fields ) {
  $address_fields['billing_phone']['required'] = false;
  return $address_fields;
}
?>

#83 Sauter la page commande

Pour faciliter l’expérience utilisateur, tout en augmentant possiblement votre taux de conversion nous vous conseillons d’intégrer ce snippet qui permet de sauter la page commande de WooCommerce pour passer directement à la page panier.

// À intégrer dans votre fichier function.php
<?php
add_filter( 'add_to_cart_redirect', 'redirect_to_checkout' );
function redirect_to_checkout() {
 global $woocommerce;
 $checkout_url = $woocommerce->cart->get_checkout_url();  
 return $checkout_url;
}
?>

Des extraits de code pour ce qui concerne les flux RSS

#84 Supprimer les flux RSS de votre site WordPress

Tous les sites WordPress ne sont pas propices à la diffusion de flux RSS, vous pouvez dès lors désactiver cette fonctionnalité avec un snippet.

// À intégrer dans votre fichier function.php
<?php
function fb_disable_feed() {
wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
}
add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);
?>

#85 Modifier le pied de page des flux RSS

Pour ajouter des flux RSS dans le pied de page de l’ensemble de vos articles vous pouvez utiliser cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
function wpformation_postrss($content) {
if(is_feed()){
$content = 'This post was written by Arnaud Terrisse '.$content.'Check out WPFormation';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpformation_postrss');
add_filter('the_content', 'wpformation_postrss');
?>

#86 Insérer des images dans vos flux RSS

Pour que les images mises en avant de vos articles apparaissent également dans votre flux RSS, vous pouvez ajouter cet extrait de code.

// À intégrer dans votre fichier function.php
<?php
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
?>

#87 Exclure des catégories de votre flux RSS

Vous devez modifier dans le code les catégories que vous ne souhaitez pas voir apparaître dans votre flux RSS.

// À intégrer dans votre fichier function.php
<?php
function exclude_category($query) {
if ( $query->is_feed ) {
$query->set('cat', '-5, -2, -3');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');
?>

Développez votre configuration unique sur WordPress

Vous pouvez maintenant intégrer des codes snippets qui rendent votre installation WordPress unique. Nous vous invitons à nous faire des retours sur cette liste. Des extraits peuvent ne plus fonctionner, ainsi dans les commentaires signalez-nous-le. Vous pouvez également nous partager vos propres snippets.