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.
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
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à
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&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 = "© " . $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() && !is_home()) { $content .= '<p>This article is copyright © '.date('Y').' '.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( '<a href="'.$url.'', '<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( '<a href="', '<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 "<div id='message' class='error'><p><strong>You must select Featured Image. Your Post is saved but it can not be published.</strong></p></div>"; 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'] ) ) &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é.
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 & 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 && $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 && $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;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;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&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&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&c=$id").'">del</a> '; echo '| <a href="'.admin_url("comment.php?action=cdc&dt=spam&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() && !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)) .'&layout=button_count&show_faces=false&width=200&action=like&colorscheme=light&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 !