100 Snippets pour Booster votre site WordPress

Les snippets, ces bouts de code qui peuvent complètement changer votre site WordPress et ses performances. Ils sont pratiques et utiles aux développeurs et aux personnes qui veulent personnaliser leurs thèmes.

Vous utilisez de nombreux plugins et vous voulez augmenter votre mémoire ? Ou vider automatiquement votre corbeille sur WordPress et vous ne savez pas comment ? Les snippets sont là pour vous aider.

snippets wordpress

SOMMAIRE

Qu’est ce qu’un Snippet, comment et où les utiliser ? 

Avant de modifier un code, faites toujours une sauvegarde de votre site avant de modifier un code. Vous pourriez vous retrouver avec un trop grand nombre d’espaces ou vous heurter à la compatibilité des plugins. Même si vous êtes sûr à 100 % de quelque chose, il vaut toujours mieux prendre des précautions.

Snippet est un mot venu de la langue anglaise qui signifie littéralement “fragment”. Un snippet vous permettra de modifier le comportement de WordPress en le copiant dans le fichier functions.php de votre thème.

Vous pouvez également opter pour le “File Transfer Protocol” ou FTP (Protocole de transfert de fichiers en français) pour modifier vos codes, c’est une option bien sécurisée. Enfin, vous pouvez vous orienter vers les MU plugins ou l’excellent plugin WordPress : Code Snippets

Nous allons maintenant voir pas moins de 100 snippets WordPress qui vous seront utiles pour plusieurs catégories telles que le tableau de bord, les articles, les utilisateurs, etc. 

Pour débuter rendez-vous dans Apparences > Éditeur de texte 

1. fichier function
Dans la colonne de droite, vous pouvez voir une liste des fichiers modifiables qui composent votre thème. Cherchez un fichier intitulé fonctions. 

Vous devriez voir ce bloc de texte là

2. fonctions de thème

 

1) Augmenter la mémoire interne de WordPress

Si vous avez beaucoup de plugins ou beaucoup de trafic, vous devrez peut-être augmenter votre limite de mémoire (ou 256M correspond à 256Mo). Vous devez ajouter ce snippet à votre fichier wp-config :

<?php
define('WP_MEMORY_LIMIT', '256M');
?>

Le fichier wp-config.php est généralement situé dans le dossier principal de votre site web avec d’autres dossiers comme /wp-content/.

 

2) Vider automatiquement la corbeille WordPress  

Vous aide à fixer un nombre de jours et réduire la taille de votre base de données (ou 5 correspond à 5 jourss). Copier dans functions.php

<?php 
define('EMPTY_TRASH_DAYS', 5 ); 
?>

 

3) Filtrer les articles WordPress mis en avant

Filtrez les articles que vous voulez montrer. Ce snippet ne montre que le contenu “mis en avant”. Il vous suffit d’ajouter ce code au fichier index.php de votre thème :

<?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(); 
?>

 

4) Détecter un moteur de recherche 

Si vous souhaitez utiliser une feuille de style différente pour différents navigateurs, vous pouvez utiliser les tags HTML ou vous pouvez utiliser ce code. Copier dans functions.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;
}
?>

 

5) Détecter les utilisateurs mobiles 

Si vous souhaitez offrir quelque chose de spécial à vos utilisateurs mobiles, vous pouvez utiliser cet extrait pour savoir quand ils se connectent sur votre site. Pour cela, vous pouvez consulter detectmobilebrowsers.mobi et télécharger le code PHP puis insérez le dans le répertoire de votre thème. Placez-le en haut de votre fichier d’en-tête. Veillez à modifier la ligne 5 de ce fichier pour qu’il corresponde à votre propre thème. Copier dans functions.php

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

 

6) Limiter la révision des articles WordPress 

La fonction d’enregistrement automatique est super utile, mais il se peut que vous vous retrouviez avec un tas de révisions après coup. Utilisez cette fonction pour en limiter le nombre. Mettez le dans le fichier functions.php

<?php 
# Maximum 5 revisions #
define('WP_POST_REVISIONS', 5);

# ou pour desactiver toutes revisions #
define('WP_POST_REVISIONS', false);
?>

 

7) Régler l’enregistrement automatique dans WordPress

L’enregistrement automatique de WordPress est très pratique. Ce snippet vous permet de définir la fréquence à laquelle cela se produira. Copier dans votre wp-config.php

<?php
# Autosave interval 5 Minutes #
define('AUTOSAVE_INTERVAL', 300);
?>

 

8) Personnaliser le logo de connexion WordPress sans plugin

C’est idéal pour ceux qui développent des sites web pour leurs clients qui veulent avoir leur propre marque sur leur site. Copier dans votre functions.php

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

 

9) Changer le logo Admin WordPress

Ne vous contentez pas de changer votre logo de connexion, changez aussi votre logo d’administration. Assurez-vous que vous avez ajouté votre admin_logo.png à votre dossier d’images. Copier dans functions.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');
?>

 

10) Copyright dynamique avec WordPress

Permet d’afficher une date dynamique (ex : 2019-2025). Utilisez ce snippet pour rendre la date dynamique afin que vous n’ayez plus jamais à vous en soucier. Copier dans functions.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;
} 
?>

 

11) Comment ajouter un fil d’Ariane personnalisé à l’URL d’accueil dans WooCommerce

Vous cherchez un moyen de changer l’URL d’origine dans les “breadcrumbs” de WooCommerce en une URL spécifique en utilisant le get_permalink(); ? 

Ajoutez ce code dans le fichier functions.php

<?php
add_filter( 'woocommerce_breadcrumb_home_url', 'woo_custom_breadrumb_home_url' );
function woo_custom_breadrumb_home_url() {
    return get_permalink(6);
}
?>

 

12) Comment définir un délimiteur de fil d’Ariane personnalisé dans WooCommerce

Vous cherchez un moyen de définir un délimiteur de fil d’Ariane personnalisé ? Code à copier dans le functions.php 

<?php
add_filter( 'woocommerce_breadcrumb_defaults', 'wps_breadcrumb_delimiter' );
function wps_breadcrumb_delimiter( $defaults ) {
  $defaults['delimiter'] = ' > ';
  return $defaults;
}
?>

Pensez à changer $defaults[‘delimiter’] = ‘ > ‘ ; par $defaults[‘delimiter’] = ‘ – ‘ ; ou tout autre élément que vous voulez.

 

13) Comment supprimer les avis sur les produits de votre boutique WooCommerce

Vous cherchez un moyen de supprimer les avis sur les produits de votre boutique WooCommerce ? Code à copier dans le functions.php 

<?php
remove_action('woocommerce_product_tabs', 'woocommerce_product_reviews_tab', 30);
remove_action('woocommerce_product_tab_panels', 'woocommerce_product_reviews_panel', 30);
?>

 

14) Comment supprimer les onglets WooCommerce dans WordPress

Toujours dans WooCommerce. Vous pouvez supprimer les onglets WooCommerce si vous le désirez. Code à copier dans le functions.php

<?php
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10);
?>

 

15) Comment supprimer le fil d’Ariane WooCommerce dans WordPress

Code à copier dans le functions.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); 
}
?>

 

16) Comment faire en sorte que le numéro de téléphone ne soit pas un champ obligatoire dans WooCommerce

Code à copier dans le functions.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;
}
?>

 

17) Comment rediriger la page “Panier” et sauter la page Commande

Code à copier dans le functions.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;
}
?>

 

18) Définir un nombre maximum de mots sur les titres des publications WordPress

Vous gérez un blog avec plusieurs utilisateurs ? Utilisez ce snippet pour définir un nombre maximum de mots sur vos titres. Code à copier dans le functions.php

<?php
function maxWord($title){
global $post;
$title = $post->post_title;
if (str_word_count($title) >= 10 ) //set this to the maximum number of words
wp_die( __('Error: your post title is over the maximum word count.') );
}
add_action('publish_post', 'maxWord');
?>

 

19) Autoriser les contributeurs à télécharger des images

Par défaut, WordPress ne permet pas aux comptes contributeurs de télécharger des images. Ce code permet aux comptes contributeurs de télécharger des images sur leurs articles, sans leur accorder de privilèges ou de droits supplémentaires. A coller dans le functions.php de votre thème.

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');
     }

 

20) Définir le nombre minimum de mots sur les publications WordPress

Pour des articles de qualité, il faut imposer un nombre de mots minimum. Dans cet exemple 900 correspond au nombre de mots minimal. Code à copier dans le functions.php

<?php
function minWord($content){
global $post;
$num = 900; //set this to the minimum number of words
$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');
?>

 

21) Ajouter un texte par défaut sur toutes vos publications WordPress

Ce snippet vous permettra d’ajouter du texte par défaut qui apparaît dans chaque nouvelle publication. Copier dans le functions.php

<?php
add_filter( 'default_content', 'my_editor_content' );
function my_editor_content( $content ) {
$content = "This is some custom content I'm adding to the post editor because I hate re-typing it.";
return $content;
}
?>

 

22) Ajouter du contenu personnalisé sous chaque article/publication WordPress

Vous pouvez ajouter un contenu personnalisé sous chaque article, peut-être une mention de copyright, de la publicité ou simplement un message de remerciement pour la lecture. Copier dans le functions.php

<?php
function add_post_content($content) {
if(!is_feed() &amp;&amp; !is_home()) {
$content .= '<p>This article is copyright &copy; '.date('Y').'&nbsp;'.bloginfo('name').'</p>';
}
return $content;
}
add_filter('the_content', 'add_post_content');
?>

 

23) Comment ajouter nofollow à un lien spécifique ou à tous les liens WordPress dans the_content

Vous cherchez un moyen d’ajouter le nofollow à des liens spécifiques ou à tous les liens de the_content ? Copier le code dans functions.php

<?php
function example_link_nofollow( $content ) {
    $url  ='http://example.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 ci-dessus ajoutera le nofollow aux liens spécifiques avec l’URL mentionnée ci-dessus. Pour ajouter le nofollow à tous les liens dans the_content, vous devez ajouter le code suivant :

<?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');
?>

 

24) Comment demander une image avant de pouvoir publier un article WordPress

Pour que votre article puisse être publié, vous devez avoir ajouté une image. Si vous essayez de publier un article sans image mise en avant après avoir ajouté ce snippet, vous recevrez ce message : “Vous devez sélectionner l’image mise en avant. Votre article est enregistré mais ne peut pas être publié”. Code à copier dans le functions.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;You must select Featured Image. Your Post is saved but it can not be published.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;";
        delete_transient( "has_post_thumbnail" );
    } 
}
?>

 

25) Comment exiger une longueur minimale de commentaire dans WordPress

Ce snippet affichera ce message d’erreur si le message comporte moins de 20 caractères : “Tous les commentaires doivent comporter au moins 20 caractères.” Code à copier dans le functions.php

<?php
add_filter( 'preprocess_comment', 'minimal_comment_length' );
function minimal_comment_length( $commentdata ) {
     $minimalCommentLength = 20;
      if ( strlen( trim( $commentdata['comment_content'] ) ) &amp;lt; $minimalCommentLength ){
       wp_die( 'All comments must be at least ' . $minimalCommentLength . ' characters long.' );
     }
     return $commentdata;
}
?>

 

26) Comment activer Contact Form 7 sur des pages spécifiques uniquement

Ce snippet vous permettra d’activer le Contact Form 7 sur certaines pages seulement pour éviter de télécharger le plugin. Code à copier dans le functions.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' );
    }
}
?>

 

27) Ajuster la taille par défaut pour le contenu intégré

Lorsque vous intégrez des images dans vos articles et pages WordPress, elles ont la taille par défaut pour être sélectionnées et affichées. Vous pouvez modifier la hauteur et la largeur par défaut de votre contenu intégré et ajouter une taille personnalisée de votre choix. Code à copier dans le functions.php

<?php
function wps_embed_size($embed_size){
    if(is_single()){
        $embed_size['height'] = 240;
        $embed_size['width']  = 380;
    }
    return $embed_size;
}  
add_filter('embed_defaults', 'wps_embed_size');
?>

 

28) Comment supprimer les éléments liés à WordPress oEmbed

Supprimer les terminaux de l’API REST, la découverte automatique d’oEmbed et le JavaScript spécifique à oEmbed du front-end et du back-end. Code à copier dans le functions.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');
?>

oEmbed offre un moyen facile d’intégrer du contenu d’un site à un autre. Vous le connaissez sans doute sur des sites comme YouTube et Twitter. Mais que faire si vous ne voulez pas que d’autres sites intègrent votre contenu ? Dans ce cas, ce snippet est pour vous.

 

29) Comment désactiver la barre latérale Widgets sur des pages spécifiques WordPress

Si vous ne voulez pas voir apparaître la barre latérale widgets sur certaines pages de votre site. Code à copier dans le functions.php

<?php
add_filter( 'sidebars_widgets', 'disable_sidebar_widgets' );
function disable_sidebar_widgets( $sidebars_widgets ) {
    if (is_single(array(1,2,4,8)))
        $sidebars_widgets = array( false );
            return $sidebars_widgets;
}
?>

 

30) Comment réinitialiser les paramètres par défaut de WordPress sur votre site

Si vous êtes allés trop loin dans la modification de votre site vous pourrez facilement faire machine arrière avec ce snippet. Code à copier dans le functions.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');
?>

 

31) Comment créer automatiquement une méta description à partir de votre contenu dans WordPress

Ce snippet vous permet d’ajouter des méta descriptions de manière automatique. Code à copier dans le functions.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');
?>

 

32) Comment catégoriser et tagger automatiquement les messages dans WordPress 

Un snippet simple et efficace pour ajouter automatiquement une catégorie et un tag à vos articles. Code à copier dans le functions.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 );
}
?>

 

33) Supprimer automatiquement les mots courts des URL pour un meilleur SEO dans WordPress

Vous cherchez un moyen de supprimer les mots courts de vos URL ? Code à copier dans le functions.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);
}
?>

 

34) Comment créer automatiquement de nouveaux utilisateurs dans WordPress

Souhaitez-vous créer automatiquement de nouveaux utilisateurs avec différents rôles d’utilisateur tels qu’administrateur, rédacteur, auteur, contributeur, abonné ? Code à copier dans le functions.php

<?php
function fb_wp_insert_user() {
$user_data = array(
'ID' => '',
'user_pass' => wp_generate_password(),
'user_login' => 'dummy',
'user_nicename' => 'Dummy',
'user_url' => '',
'user_email' => '[email protected]',
'display_name' => 'Dummy',
'nickname' => 'dummy',
'first_name' => 'Dummy',
'user_registered' => '2010-05-15 05:55:55',
'role' => get_option('default_role') // Use default role or another role, e.g. 'editor'
);
$user_id = wp_insert_user( $user_data );
}
add_action( 'admin_init', 'fb_wp_insert_user' );
?>

 

35) Comment modifier les compétences des utilisateurs en matière de rôles dans WordPress

Ce snippet vous permettra de modifier les capacités des rôles d’utilisateur afin de créer vos propres rôles d’utilisateur personnalisés. Code à copier dans le functions.php

IMPORTANT : Les compétences sont stockées dans la base de données, donc si vous voulez redonner une compétence à un rôle après l’avoir supprimée, vous devez utiliser et exécuter la fonction add_cap().

<?php
# Get the user role #
$edit_contributor = get_role('contributor');
# Contributor can upload media #
$edit_contributor->add_cap('upload_files');
# Contributor can no longer delete posts #
$edit_contributor->remove_cap('delete_posts');
?>

 

36) Comment ajouter / supprimer des informations de contact dans la page profil WordPress

Souhaitez-vous personnaliser les coordonnées de votre profil WordPress ? La section “Informations personnelles” ne contient pas certaines informations de contact importantes, comme celles de Twitter ou Facebook. Pour ajouter ou supprimer des champs dans cette section, il suffit d’ajouter ce qui suit à votre fichier functions.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); 
?>

 

37) Afficher l’article le plus populaire d’une catégorie spécifique dans WordPress

Mettez en avant vos publications les plus populaires. Code à copier dans le functions.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(); ?>

Pensez à changer cette ligne concernant la catégorie :

'cat' => 3,

Et spécifiez combien de post vous voulez afficher :

 'posts_per_page' => 6,

 

38) Comment rediriger un utilisateur WordPress vers une page spécifique après une inscription réussie 

Code à copier dans le functions.php

<?php
function wps_registration_redirect(){
    return home_url( '/finished/' );
}
add_filter( 'registration_redirect', 'wps_registration_redirect' );
?>

 

39) Comment bloquer la zone admin à tous les utilisateurs qui ne sont pas administrateurs dans WordPress

Ce snippet redirigera tous les utilisateurs qui ne sont pas administrateurs vers le domaine principal lorsqu’ils essaieront d’accéder à la partie admin de votre site WordPress. Code à copier dans le functions.php

<?php
add_action( 'init', 'blockusers_wps_init' );
function blockusers_wps_init() {
        if ( is_admin() && ! current_user_can( 'administrator' ) ) {
                wp_redirect( home_url() );
                exit;
        }
}
?>

 

40) Comment personnaliser le bouton Inscription dans WordPress

Si une inscription d’utilisateur est autorisée sur votre site, vous pouvez voir un lien “S’inscrire” sur votre page de connexion, juste en dessous de la case d’inscription. Grâce à ce snippet, vous pouvez facilement changer le texte du registre pour n’importe quel autre texte. Code à copier dans le functions.php

<?php
add_filter(  'gettext',  'register_text'  );
add_filter(  'ngettext',  'register_text'  );
function register_text( $translated ) {
     $translated = str_ireplace(  'Register',  'Sign Up',  $translated );
?>

41) Comment ajouter une boucle dans la boucle 

La Boucle (The Loop) est utilisée par WordPress pour afficher chacun de vos articles. Ajouter une boucle dans la boucle au lieu de filtrer le contenu taggé. Il vous suffit d’ajouter ce code au fichier single.php

<?php
if (have_posts()) :
while (have_posts()) : the_post(); // the post loop
$temp_query = $wp_query; // store it
$args = array(
'paged' => $paged, // paginates
'post_type'=>'post',
'posts_per_page' => 3,
'order' => 'DESC'
);
$wp_query = new WP_Query($args);
while ($wp_query->have_posts()) : $wp_query->the_post();
// -- your new loop -- //
>endwhile;
if (isset($wp_query)) {$wp_query = $temp_query;} // restore loop
>endwhile;
endif;
?>

 

42) Comment exploiter la mise en cache du navigateur à l’aide de .htaccess

Il s’agit d’un excellent snippet pour accélérer votre site Web. Collez-le dans le fichier .htaccess (n’oubliez pas de sauvegarder avant).

<?php
## 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 ##
?>

 

43) Inclure JQuery de la meilleure des manières

WordPress inclut déjà une copie de jQuery, il n’est donc pas nécessaire de la télécharger sur votre serveur. Il doit se trouver au-dessus de la fonction wp_head

<?php wp_enqueue_script("jquery"); ?>

 

44) Activer le mode maintenance 

Vous avez besoin d’un mode de maintenance rapide ? Utilisez ce snippet. Il suffit de commenter lorsque vous ne voulez pas qu’il soit activé.

L’ajout d’une page de mode de maintenance à votre site est un excellent moyen de cacher les pages introuvables à vos visiteurs lorsque votre site web est hors service pour des raisons de maintenance. Cela vous permet de modifier les paramètres, le thème ou les plugins de votre site normalement dans le backend du site, sans laisser vos visiteurs voir les détails que vous utilisez pour votre processus de maintenance.

À ajouter dans le fichier functions.php

<?php
function maintenance_mode() {
if ( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) {
die('Maintenance.');
}
}
add_action('get_header', 'maintenace_mode’);
?>

 

45) Comment modifier l’adresse de connexion simplifiée 

Vous trouvez l’adresse de connexion par défaut trop encombrante ? Vous pouvez la modifier en éditant votre fichier .htaccess. Avant de procéder à des modifications, effectuez une sauvegarde.

Pour faire en sorte que votre URL de connexion soit simplement http://example.com/login, il suffit d’ajouter cette ligne dans votre fichier .htaccess avant la réécriture par défaut de WordPress :

RewriteRule ^login$ http://yoursite.com/wp-login.php [NC,L]

 

46) Comment détecter les utilisateurs Google 

Code à copier dans index.php

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

 

47) Modifier le texte du pied de page dans l’administration de WP 

Cela va de pair avec le changement de logo. Changez le texte du pied de page comme vous le souhaitez. Copier dans functions.php

<?php
function remove_footer_admin () {
echo 'James is Awesome. Thank you <a href="http://wordpress.org">WordPress</a> for giving me this filter.';
}
add_filter('admin_footer_text', 'remove_footer_admin’);
?>

 

48) Supprimer le numéro de version de WordPress

Vous devriez toujours utiliser la dernière version de WordPress. Cependant, vous pouvez toujours vouloir supprimer le numéro de version de WordPress de votre site. Ajoutez simplement cet extrait de code à votre fichier functions.php

<?php
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');
?>

49) Changer le Gravatar par défaut dans WordPress

Avez-vous vu l’avatar par défaut sur un site WordPress ? Vous pouvez facilement le remplacer par des avatars personnalisés de votre propre marque. Il suffit de télécharger l’image que vous souhaitez utiliser comme avatar par défaut, puis d’ajouter ce code à votre fichier dans functions.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;
}
?>

 

50) Changer aléatoirement la couleur de fond dans WordPress

Voulez-vous changer aléatoirement la couleur de fond de votre WordPress à chaque visite et à chaque rechargement de page ? Voici comment le faire facilement.

Tout d’abord, vous devez ajouter ce code au fichier functions.php de votre thème.

<?php 

function wpb_bg() {
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
echo $color;
}
?>

 

51) Ajouter des tailles d’images supplémentaires dans WordPress

WordPress crée automatiquement plusieurs tailles d’image lorsque vous téléchargez une image. Vous pouvez également créer des tailles d’images supplémentaires à utiliser dans votre thème. Ajoutez ce code dans le fichier functions.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
?>

 

52) Ajouter de nouveaux menus de navigation à votre thème

WordPress permet aux développeurs de thèmes de définir des menus de navigation, puis de les afficher. Ajoutez ce code dans le fichier functions.php de votre thème pour définir un nouvel emplacement de menu dans votre thème.

<?php
function wpb_custom_new_menu() {
register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );
?>

 

Vous pouvez ensuite vous rendre dans Apparences > Menus et voir votre menu personnalisé.

capture d’écran 2021 05 13 à 13.52.17

Maintenant, vous devez ajouter le code suivant à votre thème où vous voulez afficher le menu de navigation:

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

 

53) Ajouter des champs de profil d’auteur

Voulez-vous ajouter des champs supplémentaires à vos profils d’auteur dans WordPress ? Vous pouvez facilement le faire en ajoutant ce code à votre fichier functions.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);
?>

Ce code ajoutera des champs Twitter et Facebook aux profils des utilisateurs de WordPress.

Vous pouvez maintenant afficher ces champs dans votre modèle d’auteur comme ceci :

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

 

54) Manipuler le pied de page des feeds RSS

Avez-vous vu des blogs qui ajoutent leur publicité dans leur flux RSS en dessous de chaque article ? Vous pouvez faire de même en ajoutant le snippet suivant dans votre fichier functions.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');
?>

 

55) Ajouter des images à insérer dans les feeds RSS

Les thumbnails des articles ou les images mises en avant ne sont généralement affichés que dans la conception de votre site. Vous pouvez facilement étendre cette fonctionnalité à votre flux RSS avec une simple fonction dans votre flux RSS.

Copier dans functions.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');
?>

 

56) Désactiver les flux RSS dans WordPress

Tous les sites web n’ont pas besoin de flux RSS. Si vous souhaitez désactiver les flux RSS sur votre site WordPress, ajoutez ce code au fichier functions.php de votre thème

Copier dans functions.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);
?>

57) Exclure des catégories spécifiques du flux RSS

Copier dans le fichier functions.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');
?>

 

58) Désactiver la connexion par email dans WordPress

WordPress permet aux utilisateurs de se connecter avec leur nom d’utilisateur ou leur adresse e-mail. Vous pouvez facilement désactiver la connexion par email dans WordPress en ajoutant ce code à votre fichier functions.php

<?php 
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
?>

 

59) Désactiver la fonction de recherche dans WordPress

Copier dans le fichier functions.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;" ) );
?>

 

60) Supprimer le panneau de bienvenue du tableau de bord de WordPress

Le panneau de bienvenue est une boîte méta ajoutée à l’écran du tableau de bord WordPress. Il fournit des raccourcis utiles aux débutants pour faire des choses sur leur nouveau site WordPress.

Copier dans votre fichier functions.php

remove_action('welcome_panel', 'wp_welcome_panel');

 

61) Afficher le nombre total d’utilisateurs enregistrés dans WordPress

Si vous cherchez à savoir combien d’utilisateurs sont inscrits sur votre site WordPress, voici le snippet à utiliser :

Copier dans le fichier functions.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');
?>

 

62) Activer l’exécution des shortcodes dans les widgets de texte

Par défaut, WordPress n’exécute pas les shortcodes à l’intérieur des widgets de texte. Pour corriger cela, vous devez simplement ajouter ce code au fichier functions.php de votre thème

<?php
// Enable shortcodes in text widgets
add_filter('widget_text','do_shortcode');
?>

 

63) Ajouter des types de fichiers supplémentaires à télécharger dans WordPress

Par défaut, WordPress vous permet de télécharger un nombre limité de types de fichiers les plus couramment utilisés. Cependant, vous pouvez l’étendre pour autoriser d’autres types de fichiers. Ajoutez ce code au fichier functions.php de votre thème :

<?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);
?>

Ce code vous permet de télécharger des fichiers SVG et PSD sur WordPress. Vous pouvez chercher sur Google pour trouver d’autres types de fichiers que vous souhaitez autoriser, puis les utiliser dans le code.

 

64) Associer automatiquement les images mises en avant aux articles

Si votre thème WordPress ne lie pas automatiquement les images aux articles complets, vous pouvez essayer cette méthode. Ajoutez simplement ce code au fichier functions.php de votre thème.

<?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 );
?>

 

65) Désactiver XML-RPC dans WordPress

XML-RPC est une méthode qui permet à des applications tierces de communiquer à distance avec votre site WordPress. Cela peut causer des problèmes de sécurité et peut être exploité par des pirates.

Il suffit d’ajouter ce code à votre fichier functions.php pour désactiver XML-RPC dans WordPress :

<?php
add_filter('xmlrpc_enabled', '__return_false');
?>

 

66) Ajouter un champ d’information sur l’auteur dans les articles de WordPress

Si vous gérez un site multi-auteur et que vous souhaitez présenter les auteurs à la fin de votre article, vous pouvez essayer cette méthode. Commencez par ajouter ce code à votre fichier functions.php :

<?php
function wpb_author_info_box( $content ) {
global $post;
// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {
// Get author's display name
$display_name = get_the_author_meta( 'display_name', $post->post_author );
// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );
// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );
// Get author's website URL
$user_website = get_the_author_meta('url', $post->post_author);
// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
if ( ! empty( $display_name ) )
$author_details = '<p class="author_name">About ' . $display_name . '</p>';
if ( ! empty( $user_description ) )
// Author avatar and bio
$author_details .= '<p class="author_details">' . get_avatar( get_the_author_meta('user_email') , 90 ) . nl2br( $user_description ). '</p>';
$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>'; 
// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {
// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow">Website</a></p>';
} else {
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}
// Pass all this info to post content 
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}
// Add our function to the post content filter
add_action( 'the_content', 'wpb_author_info_box' );
// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses’);
?>

Ensuite, vous pouvez ajouter quelques feuilles de style CSS personnalisées pour améliorer l’apparence. Vous pouvez utiliser cet exemple de CSS comme point de départ.

.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}
.author_name{
font-size:16px;
font-weight: bold;
}
.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}

 

67) Masquer les erreurs de connexion dans WordPress

Les erreurs de connexion dans WordPress peuvent être utilisées par les hackers pour déterminer s’ils ont saisi un mauvais nom d’utilisateur ou un mauvais mot de passe. En masquant les erreurs de connexion dans WordPress, vous pouvez rendre votre zone de connexion un peu plus sûre.

Copier dans le fichier functions.php

<?php
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
?>

 

68) Modifier la liste déroulante Aide

Si vous cherchez à développer votre menu déroulant Aide voici le snippet à utiliser

Copier dans le functions.php

<?php
//hook loading of new page and edit page screens
add_action('load-page-new.php','add_custom_help_page');
add_action('load-page.php','add_custom_help_page');
function add_custom_help_page() {
//the contextual help filter
add_filter('contextual_help','custom_page_help');
}
function custom_page_help($help) {
//keep the existing help copy
echo $help;
//add some new copy
echo "<h5>Custom Features</h5>";
echo "<p>Content placed above the more divider will appear in column 1. Content placed below the divider will appear in column 2.</p>";
}
?>

 

69) Comment afficher une date relative pour vos articles 

Au lieu d’afficher la date à laquelle votre message a été posté, vous pouvez la mettre en relation avec une autre date – “il y a 6 mois” ou “il y a 3 semaines” ou autre. Utilisez ceci dans vos messages, commentaires et pages.

Copier dans functions.php

<?php
# For posts &amp; pages # <?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' ago'; # For comments # <?php echo human_time_diff(get_comment_time('U'), current_time('timestamp')) . ' ago'; 
?>

 

70) Ajouter automatiquement un champ de recherche à votre menu de navigation

Copier dans functions.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;
}
?>

 

71) Comment ajouter une pagination

Vous voulez une pagination en bas de votre site ? Insérez ce snippet dans votre functions.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 );
}
?>

 

72) Désactiver les widgets standard

Ce snippet vous permettra de désactiver les widgets calendrier, recherche, et commentaires récents. Vous pouvez utiliser ce snippet si vous n’avez pas le temps d’ajouter le support de certains widgets standard de WordPress à votre thème.

Copier dans functions.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);
?>

 

73) Ajouter des shortcodes aux widgets

Copier dans functions.php

add_filter('widget_text', 'do_shortcode');

Après avoir inséré ce snippet, vous pouvez ajouter vos shortcodes aux widgets comme vous ajoutez les shortcodes dans les pages ou les articles.

 

74) Google Analytics sans modifier le thème

Vous avez déjà mis à jour votre thème principal et réalisé quelques semaines plus tard que vous n’aviez pas ajouté le code de suivi de Google Analytics ?

Copier dans functions.php

<?php
add_action('wp_footer', 'ga');
function ga() { ?>
// Paste your Google Analytics code here
<?php } ?>

 

75) Définir l’éditeur de texte par défaut

Vous n’aimez pas l’éditeur WYSIWYG par défaut ? Vous pouvez le personnaliser à l’aide d’un snippet.

Copier ce snippet dans functions.php

Ce snippet passe à l’éditeur visuel par défaut

<?php
# This sets the Visual Editor as default #
add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );
?>

Ce snippet passe à l’éditeur de texte par défaut

<?php
# This sets the HTML Editor as default #
add_filter( 'wp_default_editor', create_function('', 'return "html";') );
?>

 

76) Changer la police de l’éditeur HTML

Vous souhaitez utiliser une police autre que la police Courrier ? Utilisez ce snippet pour modifier comme vous le voulez.

Copier dans functions.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");
?>

 

77) Style de l’éditeur visuel

Vous pouvez donner un style à l’éditeur visuel. Il suffit de créer un nouveau fichier CSS – quelque chose comme editor-style.css et d’y inclure le snippet suivant

Copier dans functions.php

<?php
add_filter('mce_css', 'my_editor_style');
function my_editor_style($url) {
if ( !empty($url) )
$url .= ',';
// Change the path here if using sub-directory
$url .= trailingslashit( get_stylesheet_directory_uri() ) . 'editor-style.css';
return $url;
}
?>

 

78) Ajouter des informations de contact personnalisées

Pour changer les informations de bases que WordPress propose voici un snippet à copier dans votre fichier functions.php

<?php
/* BEGIN Custom User Contact Info */
function extra_contact_info($contactmethods) {
unset($contactmethods['aim']);
unset($contactmethods['yim']);
unset($contactmethods['jabber']);
$contactmethods['facebook'] = 'Facebook';
$contactmethods['twitter'] = 'Twitter';
$contactmethods['linkedin'] = 'LinkedIn';
return $contactmethods;
}
add_filter('user_contactmethods', 'extra_contact_info');
/* END Custom User Contact Info */
?>

Puis utiliser ce shortcode pour l’afficher où vous voulez :

<a href="<?php the_author_meta('facebook', $current_author->ID); ?>"></a>

 

79) Mettre en évidence les termes de recherche

Renforcez votre fonctionnalité de recherche en mettant en évidence le terme recherché dans les résultats.

Ouvrez le fichier search.php et cherchez le code

the_title() function

Puis remplacer par

echo $title;

Au dessus de la ligne modifiée insérer le snippet suivant :

<?php
<span style="white-space: pre;"> </span>$title <span style="white-space: pre;"> </span>= get_the_title();
<span style="white-space: pre;"> </span>$keys= explode(" ",$s);
<span style="white-space: pre;"> </span>$title <span style="white-space: pre;"> </span>= preg_replace('/('.implode('|', $keys) .')/iu',
<span style="white-space: pre;"> </span>'<strong class="search-excerpt"></strong>',
<span style="white-space: pre;"> </span>$title);
?>

Ajouter le code suivant à votre fichier style.css :

strong.search-excerpt { background: yellow; }

 

80) Exclure les articles et les pages des résultats de recherche

Voici un snippet pour exclure les articles et les pages par leur ID

Copier dans functions.php

<?php
// search filter
function fb_search_filter($query) {
if ( !$query->is_admin &amp;&amp; $query->is_search) {
$query->set('post__not_in', array(40, 9) ); // id of page or post
}
return $query;
}
add_filter( 'pre_get_posts', 'fb_search_filter' );
?>

Pour exclure la sous-page d’une page, vous devez ajouter le code suivant au IS :

<?php
// search filter
function fb_search_filter($query) {
if ( !$query->is_admin &amp;&amp; $query->is_search) {
$pages = array(2, 40, 9); // id of page or post
// find children to id
>foreach( $pages as $page ) {
$childrens = get_pages( array('child_of' => $page, 'echo' => 0) );
}
// add id to array
>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' );
?>

 

81) Désactiver la recherche WordPress

Si vous ne souhaitez pas que vos visiteurs puissent effectuer des recherches sur votre site, utilisez ce snippet pour supprimer la fonctionnalité de recherche

Copier dans functions.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;" ) );
?>

 

82) Numéroter vos articles

Ce snippet vous permet d’ajouter des numéros à côté de vos articles. Vous pouvez utiliser Article 1, Article 2, Article 3 ; ou Post 1, Post 2, Post 3 ou autre.

Code à copier dans functions.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' );
?>

Ensuite ajouter ce code dans la boucle :

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

 

83) Afficher vos articles de manière aléatoire

Code à copier dans functions.php

<?php
<ul><li><h2>A random selection of my writing</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>
?>

 

84) Afficher vos articles de manière aléatoire

Code à copier dans functions.php

<?php
<ul><li><h2>A random selection of my writing</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>
?>

 

85) Lister vos articles à venir

Vous souhaitez afficher un événement qui aura lieu dans le futur ? Ce snippet vous permettra de répertorier les articles que vous avez en cours de rédaction.

Code à copier dans functions.php

<?php
<div id="zukunft">
<div id="zukunft_header"><p>Future events</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>No future events scheduled.</p><?php endif; ?>
</div>
?>

 

86) Afficher les articles associés

Code à copier dans functions.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();
}
}
?>

 

87) Comment lister vos articles populaires en fonction du nombre de commentaires

Code à copier dans functions.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>
?>

 

88) Comment afficher vos articles les plus récents

Code à copier dans functions.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>

 

89) Comment créer des types d’articles personnalisés

Code à copier dans functions.php

<?php
$args = array(
'label' => __('Products'),
'singular_label' => __('Product'),
'public' => true,
'show_ui' => true,
'capability_type' => 'page',
'hierarchical' => false,
'rewrite' => true,
'query_var' => 'products',
'supports' => array('title', 'thumbnail')
);
register_post_type( 'product' , $args );
?>

 

90) Comment classer vos catégories par ordre de mise à jour la plus récente

Code à copier dans functions.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();
?>

 

91) Comment exclure une catégorie spécifique

Code à copier dans functions.php

<?php query_posts('cat=-2'); ?>
<?php while (have_posts()) : the_post(); ?>
//the loop here
<?php endwhile;?>

 

92) Comment afficher des commentaires récents avec Gravatar

C’est une bonne façon de réaliser quelque chose de simple sans avoir recours à un plugin. Vous pouvez afficher vos derniers commentaires dans votre barre latérale, avec le gravatar. Il suffit de coller ceci dans votre fichier sidebar.php

<?php $comments = get_comments('status=approve&amp;number=5'); ?>
<ul>
<?php foreach ($comments as $comment) { ?>
<li>
<?php echo get_avatar( $comment, '35' ); ?>
<a href="<?php echo get_permalink($comment->ID); ?>#comment-<?php echo $comment->comment_ID; ?>" title="on <?php echo $comment->post_title; ?>"> <?php echo strip_tags($comment->comment_author); ?>: <?php echo wp_html_excerpt( $comment->comment_content, 35 ); ?>... </a>
</li>
<?php } ?>
</ul>

 

93) Comment afficher un numéro devant des commentaires

Si vous voulez un moyen rapide de montrer votre nombre de commentaires, vous pouvez ajouter ce snippet à votre fichier sidebar.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?";
?>

94) Comment ajouter les boutons “Del” et “Spam” à vos commentaires

C’est parfois ennuyant de devoir aller dans la zone d’administration juste pour mettre un article/commentaire dans les spams. Vous pouvez utiliser ce snippet pour ajouter les boutons “Del” et “Spam” à vos commentaires sur le front-end.

Code à copier dans functions.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>';
}
}
?>

Ajouter le code suivant après

edit_comment_link()

delete_comment_link(get_comment_ID());

 

95) Comment supprimer les liens automatiques dans les commentaires

Voici un snippet pour éviter que les spammeurs laissent des liens dans vos commentaires

Copier dans functions.php

<?php
remove_filter('comment_text', 'make_clickable', 9);
?>

 

96) Comment changer le nom en auteur invité

Souvent, les auteurs invités ou contributeurs occasionnels ne publient qu’une seule fois. Vous pouvez utiliser ce snippet ainsi que des champs personnalisés pour changer le nom de l’auteur de l’article  par celui de l’auteur invité.

Copier dans functions.php

<?php
add_filter( 'the_author', 'guest_author_name' );
add_filter( 'get_the_author_display_name', 'guest_author_name' );
function guest_author_name( $name ) {
global $post;
$author = get_post_meta( $post->ID, 'guest-author', true );
if ( $author )
$name = $author;
return $name;
}
?>

 

97) Comment insérer une boîte de présentation pour vos contributeurs

Pour insérer un encadré d’auteur sous un article, insérez ce snippet dans votre fichier single.php après les tags de l’articles

<div>
<div>
<div><?php echo get_avatar( get_the_author_email(), '80' ); ?></div>
</div>
<div>
<div><?php the_author_meta( "display_name" ); ?></div>
<div><?php the_author_meta( "user_description" ); ?></div>
<div><?php if (get_the_author_url()) { ?><a href="<?php the_author_url(); ?>">Visit <?php the_author(); ?>'s website</a><?php } else { } ?></div>
</div>
<div></div>
</div>

Et voici du CSS pour personnaliser le tout

.author-box { padding: 10px; background: #ccc; border: 1px solid #333;}
.author-left {float:left; width: 80px; margin: 0 15px 0 0;}
.author-right {float:left; font-size: 13px; margin: 5px 0 0 10px;}
.author-pic {border: 1px solid: #ccc;}
.author-name {font-weight:bold;}
.author-bio {padding: 5px 0 5px 0;}
.author-url {color: #555;}
.author-url a {color: #000;}
.author-url a:hover {color: #333;}
.clear {clear:both}

 

98) Comment mettre en évidence les commentaires de l’auteur d’un article

Ce snippet ne met en évidence que l’auteur de l’article et non pas tous les auteurs du site.

Copier dans votre fichier 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;
}

99) Comment protégez votre fichier wp-config.php

Code à copier dans .htaccess

<Files wp-config.php>
order allow,deny
deny from all
</Files>

 

100) Comment ajouter Facebook et Twitter au bas de chaque article

Ajoutez facilement Facebook et Twitter au bas de vos publications en ajoutant ce snippet à votre fichier functions.php

<?php
function share_this($content){
if(!is_feed() &amp;&amp; !is_home()) {
$content .= '<div class="share-this">
<a href="http://twitter.com/share"
class="twitter-share-button"
data-count="horizontal">Tweet</a>
<script type="text/javascript"
src="https://platform.twitter.com/widgets.js"></script>
<div class="facebook-share-button">
<iframe
src="https://www.facebook.com/plugins/like.php?href='.
urlencode(get_permalink($post->ID))
.'&amp;layout=button_count&amp;show_faces=false&amp;width=200&amp;action=like&amp;colorscheme=light&amp;height=21"
?>

Conclusion

Cet article a abordé 100 snippets qui peuvent se rendre très utiles. Que vous soyez un développeur ou que vous cherchiez à  personnaliser vos thèmes WordPress, ces snippets couvrent la plupart des fonctionnalités et utilisations actuelles. Commentaires, articles, typographie, images, éditeur de texte ou flux RSS, les snippet présentés ont pour but de booster les performances de votre site. N’hésitez pas à piocher dans la liste ceux qui peuvent vous intéresser. 

Retenez bien que les snippets sont une bonne alternative à l’utilisation de plugins mais ils ne les remplacent en aucun cas car c’est ce qui fait la force de WordPress !

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

Avatar de Arnaud

Arnaud

Jeune professionnel passionné par la technologie et l'innovation, j'aime partager mes connaissances sur WordPress. J'aime voyager, découvrir de nouvelles cultures et apprendre de nouvelles idées entrepreneuriales.