Le fichier de fonctions de WordPress, connu sous le nom de functions.php, est un outil puissant fourni avec chaque thème WordPress. Il agit comme une extension, vous permettant d’ajouter facilement du code personnalisé à votre site.
Nous utilisons du code personnalisé sur nos sites lorsqu’un petit bout de code peut être utilisé. La polyvalence et la flexibilité de WordPress nous permettent de combiner les fonctionnalités de plusieurs extensions d’une manière facile à gérer.
Dans cet article, nous partagerons quelques-unes de ces astuces pratiques et utiles pour utiliser votre fichier de fonctions WordPress, vous aidant ainsi à tirer le meilleur parti de votre site WordPress.
Qu’est-ce que le fichier Functions de WordPress ?
Le fichier functions.php est un fichier de thème WordPress qui est fourni avec tous les thèmes WordPress gratuits et premium.
Il agit comme une extension et permet aux développeurs/développeurs de thèmes de définir les fonctionnalités de ces derniers. Les utilisateurs/utilisatrices peuvent également l’utiliser pour ajouter leurs extraits de code personnalisés dans WordPress.
Cependant, enregistrer du code personnalisé dans un fichier de fonctions n’est pas une bonne pratique.
Si vous mettez à jour votre thème, le fichier functions.php sera écrasé et vous perdrez vos extraits de code personnalisés. Il n’est pas possible d’inactiver un extrait sans le supprimer.
Nous recommandons plutôt l’utilisation de WPCode, un plugin gratuit qui vous permet d’insérer des extraits de code dans votre site WordPress sans modifier le thème, les extensions ou les fichiers du cœur de WordPress.
Pourquoi recommander WPCode ?
- Enregistrez facilement des extraits de code personnalisés sans modifier les fichiers du cœur.
- Insérer automatiquement des extraits de code là où vous en avez besoin
- Chaque extrait de code est enregistré séparément et peut être inactif.
- Un mécanisme de sécurité intégré désactivera un extrait de code s’il provoque une erreur sur votre site.
En prime, l’extension WPCode dispose d’une vaste Bibliothèque d’extraits de code préconfigurés (dont plusieurs figurent sur cette liste). Vous pouvez déployer ces extraits de code en quelques clics.
Cela dit, voici une liste des éléments que nous allons aborder dans cet article. Vous pouvez passer à celui qui vous intéresse ou simplement suivre le fil :
- How to Add These Code Snippets to Your Website
- Remove WordPress Version Number
- Add a Custom Dashboard Logo
- Change the Footer in WordPress Admin Panel
- Add Custom Dashboard Widgets in WordPress
- Change the Default Gravatar in WordPress
- Dynamic Copyright Date in WordPress Footer
- Randomly Change the Background Color in WordPress
- Update WordPress URLs
- Add Additional Image Sizes in WordPress
- Add New Navigation Menus to Your Theme
- Add Author Profile Fields
- Adding Widget-Ready Areas or Sidebars in WordPress Themes
- Manipulate the RSS Feed Footer
- Add Featured Images to RSS Feeds
- Hide Login Errors in WordPress
- Disable Login by Email in WordPress
- Disable Search Feature in WordPress
- Delay Posts in RSS Feed
- Change Read More Text for Excerpts in WordPress
- Disable RSS Feeds in WordPress
- Change Excerpt Length in WordPress
- Add an Admin User in WordPress
- Disable Language Switcher on Login Page
- Show the Total Number of Registered Users in WordPress
- Exclude Specific Categories From RSS Feed
- Disable URL Links in WordPress Comments
- Add Odd and Even CSS Classes to WordPress Posts
- Add Additional File Types to Be Uploaded in WordPress
- Change Sender Name in WordPress Emails
- Add an Author Info Box in WordPress Posts
- Disable XML-RPC in WordPress
- Automatically Link Featured Images to Posts
- Disable Block Editor in WordPress
- Disable Block Widgets in WordPress
- Display the Last Updated Date in WordPress
- Use Lowercase Filenames for Uploads
- Disable WordPress Admin Bar on Frontend
- Change Howdy Admin Text in Admin Area
- Disable Code Editing in Block Editor
- Disable Plugin / Theme File Editor
- Disable New User Notification Emails
- Disable Automatic Update Email Notifications
- Add a Link to Easily Duplicate a Post
- Remove Welcome Panel From the WordPress Admin Dashboard
- Add a Featured Image Column for Posts in WordPress Admin
- Block WordPress Admin Area for Everyone Except Administrators
Comment ajouter ces extraits de code à votre site ?
Avant de commencer, voyons comment ajouter les extraits de code de cet article à votre fichier de fonctions WordPress.
1. Ajouter du code personnalisé au fichier de personnalisation à l’aide de WPCode (recommandé)
Tout d’abord, vous devez installer et activer l’extension WPCode. Pour plus de détails, consultez notre guide étape par étape sur l’installation d’une extension WordPress.
Une fois activé, allez sur la page « Extraits de code » + « Ajouter un extrait ». Vous verrez la bibliothèque de code de WPCode avec de nombreux extraits de code personnalisés utiles déjà ajoutés.
Si votre extrait de code fait la même chose que les extraits de la Bibliothèque, vous pouvez essayer celui qui y est déjà ajouté.
Vous pouvez également cliquer sur le lien « Extrait vierge » pour continuer à ajouter votre extrait de code personnalisé.
Sur l’écran suivant, donnez un titre à votre code personnalisé. Il peut s’agir de n’importe quoi qui vous aide à identifier ce que fait cet extrait de code.
Ensuite, vous devez choisir le « Type de code ». Si vous ajoutez un code qui fonctionne dans le fichier functions.php, vous devez sélectionner « PHP Snippet ».
En dessous, vous devez copier et coller votre code personnalisé dans la case « Prévisualisation du code ».
Enfin, vous devez définir votre extrait comme « Actif » et cliquer sur le bouton « Enregistrer l’extrait ».
L’extrait enregistré s’exécutera maintenant comme si vous l’aviez ajouté au fichier functions.php.
Vous pouvez répéter l’opération pour ajouter d’autres extraits si nécessaire. Vous pouvez également désactiver un extrait sans le supprimer.
2. Ajouter du code personnalisé directement dans le fichier de fonctions
La méthode WPCode est toujours préférable à l’ajout de code dans le fichier de fonctions du thème.
Cependant, certains utilisateurs/utilisatrices peuvent écrire du code pour le thème WordPress personnalisé d’un client/cliente ou préfèrent simplement ajouter du code au fichier functions.php.
Dans ce cas, voici comment ajouter du code au fichier functions.php de votre thème WordPress.
Tout d’abord, connectez-vous à votre site WordPress à l’aide d’un client FTP. Une fois connecté, naviguez jusqu’au dossier /wp-content/themes/votre-thème-wordpress/.
Vous y trouverez le fichier functions.php. Il vous suffit de cliquer avec le bouton droit de la souris et de sélectionner le fichier à modifier ou de le télécharger sur votre ordinateur pour le modifier.
Vous pouvez le modifier à l’aide de n’importe quel éditeur de texte tel que Notepad ou TextEdit.
Ensuite, défilez jusqu’au bas du fichier functions.php et collez-y votre extrait de code. Vous pouvez enregistrer vos modifications et téléverser le fichier functions.php mis à jour dans le dossier de votre thème.
Vous pouvez maintenant visiter votre site WordPress pour voir votre code personnalisé en action.
Voyons maintenant 46 astuces différentes et utiles pour le fichier de fonctions de WordPress.
1. Retirer le numéro de version de WordPress
Vous devez toujours utiliser la dernière version de WordPress. Toutefois, il se peut que vous souhaitiez retirer le numéro de version de WordPress de votre site.
Il suffit d’ajouter cet extrait de code à votre fichier de fonctions ou en tant que nouvel extrait de WPCode :
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');
Pour des instructions détaillées, consultez notre guide sur la bonne façon de retirer le numéro de version de WordPress.
2. Ajouter un logo personnalisé au Tableau de bord
Vous souhaitez libeller votre zone d’administration WordPress en marque blanche ? La première étape consiste à ajouter un logo personnalisé au tableau de bord.
Tout d’abord, vous devez téléverser votre logo personnalisé dans le dossier images de votre thème en tant que custom-logo.png. Votre logo personnalisé doit être dans un rapport 1:1 (une image carrée) en 16×16 pixels.
Ensuite, vous pouvez ajouter ce code au fichier de fonctions de votre thème ou en tant que nouvel extrait WPCode :
function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');
Pour plus de détails, consultez notre guide sur l ‘ajout d’un logo personnalisé pour le tableau de bord dans WordPress.
3. Modifier le pied de page dans le panneau d’administration de WordPress
Le pied de page de la zone d’administration de WordPress affiche le message « Thank you for creating with WordPress » (Merci d’avoir créé avec WordPress). Vous pouvez le modifier à votre guise en ajoutant ce code :
function remove_footer_admin () {
echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}
add_filter('admin_footer_text', 'remove_footer_admin');
N’hésitez pas à modifier le texte et les liens que vous souhaitez ajouter. Voici ce que cela donne sur notre site de test.
4. Ajouter des Widgets de Tableau de Bord personnalisés dans WordPress
Vous avez probablement vu les widgets que de nombreuses extensions et thèmes ajoutent au tableau de bord WordPress. Vous pouvez en ajouter un vous-même en collant le code suivant :
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}
function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}
Voici à quoi cela ressemblerait :
Pour plus de détails, consultez notre tutoriel sur l ‘ajout de widgets de tableau de bord personnalisés dans WordPress.
5. Modifier le Gravatar par défaut dans WordPress
Avez-vous vu l’avatar de l’homme mystérieux par défaut sur les blogs ? Vous pouvez facilement le remplacer par votre propre avatar personnalisé et marqué.
Téléversez simplement l’image que vous souhaitez utiliser comme avatar par défaut et ajoutez ce code à votre fichier de fonctions ou à l’extension WPCode :
function wpb_custom_default_gravatar( $avatar_defaults ) {
$myavatar = 'https://example.com/wp-content/uploads/2022/10/dummygravatar.png';
$avatar_defaults[$myavatar] = 'Default Gravatar';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'wpb_custom_default_gravatar' );
Vous pouvez maintenant vous rendre sur la page Réglages » Discussion et sélectionner votre avatar par défaut.
Pour des instructions détaillées, consultez notre guide sur la modification du gravatar par défaut dans WordPress.
6. Date de Copyright dynamique dans le pied de page de WordPress
Vous pouvez simplement ajouter une date de copyright en modifiant le modèle de pied de page de votre thème. Toutefois, elle n’affichera pas la date de démarrage de votre site et ne sera pas modifiée automatiquement l’année suivante.
Ce code permet d’ajouter une date de copyright dynamique dans le pied de page de WordPress :
function wpb_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;
}
Après avoir ajouté cette fonction, vous devrez ouvrir votre fichier footer.php et ajouter le code suivant à l’endroit où vous souhaitez afficher la date de copyright dynamique :
<?php echo wpb_copyright(); ?>
Cette fonction recherche la date de votre première publication et la date de votre dernière publication. Elle renvoie ensuite les années à chaque fois que vous appelez la fonction.
Astuce : Si vous utilisez l’extension WPCode, vous pouvez combiner les deux extraits de code. Après cela, choisissez l’emplacement » Site Wide Footer » dans la section » Insertion » des Réglages de l’extrait. Cela affichera automatiquement la date du copyright dans le pied de page sans modifier le fichier footer.php de votre thème.
Pour plus de détails, consultez notre guide sur l’ajout de dates de copyright dynamiques dans WordPress.
7. Modifier aléatoirement la couleur de l’arrière-plan dans WordPress
Voulez-vous modifier de manière aléatoire la couleur d’arrière-plan de votre blog WordPress à chaque visite et à chaque rechargement de page ? Voici comment le faire facilement.
Tout d’abord, ajoutez ce code au fichier de fonctions de votre thème ou à l’extension WPCode :
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;
}
Ensuite, vous devez modifier le fichier header.php de votre thème. Trouvez l’identifiant <body>
et remplacez-le par cette ligne :
<body <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">
Vous pouvez maintenant enregistrer vos modifications et visiter votre site pour voir ce code en action.
Pour plus de détails et d’autres modifications, consultez notre tutoriel sur la modification aléatoire de la couleur d’arrière-plan dans WordPress.
8. Mettre à jour les URL de WordPress
Si votre page de connexion WordPress ne cesse de s’actualiser ou si vous ne pouvez pas accéder à la zone d’administration, vous devez mettre à jour les URL de WordPress.
Une façon de le faire est d’utiliser le fichier wp-config.php. Cependant, si vous faites cela, vous ne pourrez pas définir l’adresse correcte sur la page des Réglages. Les champs URL WordPress et URL du site seront verrouillés et non modifiables.
Au lieu de cela, ajoutez simplement ce code à votre fichier de fonctions pour corriger ce problème :
update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );
N’oubliez pas de remplacer exemple.com par votre nom de domaine.
Une fois connecté, vous pouvez vous rendre sur la page Réglages dans la zone d’administration de WordPress et définir les URL.
Ensuite, vous devez retirer le code que vous avez ajouté au fichier de fonctions ou au WPCode. Sinon, il continuera à mettre à jour ces URL à chaque fois que l’on accède à votre site.
9. Ajouter des tailles d’images supplémentaires dans WordPress
WordPress génère automatiquement plusieurs tailles d’image lorsque vous téléversez une image. Vous pouvez également créer des tailles d’image supplémentaires à utiliser dans votre thème.
Il suffit d’ajouter ce code au fichier de fonctions de votre thème ou sous forme d’extrait de code WPCode :
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
Ce code crée trois nouvelles images de tailles différentes. N’hésitez pas à ajuster le code pour répondre à vos Prérequis.
Vous pouvez ensuite afficher une taille d’image n’importe où dans votre thème à l’aide de ce code :
<?php the_post_thumbnail( 'homepage-thumb' ); ?>
Pour des instructions détaillées, consultez notre guide sur la création de tailles d’images supplémentaires dans WordPress.
10. Ajouter de nouveaux menus de navigation à votre thème
WordPress permet aux développeurs/développeuses de thèmes de définir des menus de navigation et de les afficher.
Vous pouvez ajouter ce code au fichier de fonctions de votre thème ou en tant que nouvel extrait WPCode pour définir un nouvel emplacement de menu dans votre thème :
function wpb_custom_new_menu() {
register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );
Vous pouvez maintenant aller dans Apparence » Menus dans votre Tableau de bord WordPress et voir ‘My Custom Menu’ comme option d’emplacement du thème.
Note : Ce code fonctionnera également avec les thèmes en bloc dotés de la fonctionnalité d’édition de site avant. Ajouté, il activera l’écran Menus sous Apparence.
Vous devez maintenant ajouter ce code à votre thème à l’endroit où vous souhaitez afficher le menu de navigation :
<?php
wp_nav_menu( array(
'theme_location' => 'my-custom-menu',
'container_class' => 'custom-menu-class' ) );
?>
Pour des instructions détaillées, consultez notre guide sur la façon d’ajouter des menus de navigation personnalisés dans les thèmes WordPress.
11. Ajouter des champs au profil de l’auteur/autrice
Voulez-vous ajouter des champs supplémentaires à vos auteurs/autrices dans WordPress ? Vous pouvez facilement le faire en ajoutant ce code à votre fichier de fonctions ou en tant que nouvel extrait de WPCode :
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 les champs Twitter et Facebook aux profils des utilisateurs/utilisatrices dans WordPress.
Vous pouvez maintenant afficher ces champs dans votre modèle d’auteur/autrice comme suit :
<?php echo get_the_author_meta('twitter') ?>
Vous pouvez également consulter notre guide sur l’ajout de champs de profil utilisateur supplémentaires dans l’inscription WordPress.
12. Ajout de zones prêtes à accueillir des widgets ou de colonnes latérales dans les thèmes WordPress
C’est l’un des extraits de code les plus utilisés, et de nombreux développeurs savent déjà qu’il permet d’ajouter des zones prêtes à accueillir des widgets ou des colonnes latérales aux thèmes WordPress. Mais il mérite de figurer dans cette liste pour ceux qui ne le savent pas.
Vous pouvez coller le code suivant dans votre fichier functions.php ou dans un nouvel extrait WPCode :
// Register Sidebars
function custom_sidebars() {
$args = array(
'id' => 'custom_sidebar',
'name' => __( 'Custom Widget Area', 'text_domain' ),
'description' => __( 'A custom widget area', 'text_domain' ),
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
);
register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );
Note : Ce code fonctionnera également avec les thèmes en bloc dotés de la fonctionnalité d’édition de site avant. Ajouté, il activera l’écran Widgets sous Apparence.
Vous pouvez maintenant visiter la page Apparence » Widgets et voir votre nouvelle zone de widgets personnalisés.
Pour afficher cette colonne latérale ou cette zone prête à accueillir des widgets sur votre site, vous devez ajouter le code suivant dans le modèle où vous souhaitez l’afficher :
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>
Pour plus de détails, consultez notre guide sur l’ajout de zones et de colonnes latérales dynamiques prêtes à accueillir des widgets dans WordPress.
13. Manipuler le pied de page du flux RSS
Avez-vous vu des blogs qui ajoutent leurs annonces dans leur flux RSS sous chaque publication ? Vous pouvez réaliser cela facilement avec une simple fonction. Il suffit de coller le code suivant :
function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');
En savoir plus, consultez notre guide sur l’ajout de contenu et la manipulation complète de vos flux RSS.
14. Ajouter des images mises en avant aux flux RSS
Les miniatures des publications ou les images mises en avant sont généralement affichées uniquement dans la conception de votre site. Vous pouvez facilement étendre cette fonctionnalité à votre flux RSS avec le code suivant :
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');
Pour plus de détails, consultez notre module sur l’ajout de miniatures de publication à votre flux RSS WordPress.
15. Masquer les erreurs de connexion sur WordPress
Les pirates informatiques peuvent utiliser les erreurs de connexion pour deviner s’ils ont saisi le mauvais identifiant ou le mauvais mot de passe. En masquant les erreurs de connexion dans WordPress, vous pouvez rendre votre zone de connexion et votre site WordPress plus sûrs.
Il suffit d’ajouter le code suivant au fichier de fonctions de votre thème ou en tant que nouvel extrait WPCode :
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
Désormais, les utilisateurs/utilisatrices verront un message générique lorsqu’ils saisiront un identifiant ou un mot de passe incorrect.
En savoir plus, consultez notre tutoriel sur la désactivation des conseils de connexion dans les messages d’erreur de WordPress.
16. Désactiver la connexion par e-mail dans WordPress
WordPress autorise les utilisateurs à se connecter avec leur nom d’utilisateur ou leur adresse e-mail. Vous pouvez facilement désactiver la connexion par e-mail dans WordPress en ajoutant ce code à votre fichier de fonctions ou en tant que nouvel extrait WPCode :
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
En savoir plus, consultez notre guide sur la désactivation de la fonctionnalité de connexion par e-mail dans WordPress.
17. Désactiver la fonctionnalité de recherche en WordPress
Si vous souhaitez désactiver la fonctionnalité de recherche de votre site WordPress, il vous suffit d’ajouter ce code à votre fichier de fonctions ou dans un nouvel extrait WPCode :
function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}}
Ce code désactive simplement la requête de recherche en la modifiant et en renvoyant une erreur 404 au lieu des résultats de la recherche.
En savoir plus, consultez notre tutoriel sur la désactivation de la fonctionnalité de recherche de WordPress.
Astuce : Au lieu d’abandonner la recherche sur WordPress, nous vous recommandons d’essayer SearchWP. C’est la meilleure extension de recherche WordPress sur le marché qui vous permet d’ajouter une fonctionnalité de recherche puissante et personnalisable à votre site.
18. Retarder les publications dans le flux RSS
Il peut arriver que vous publiiez un article comportant une erreur grammaticale ou une faute d’orthographe.
L’erreur est mise en direct et distribuée aux abonnés/abonnés de votre flux RSS. Si vous avez des abonnements e-mail sur votre blog WordPress, ces abonnés/abonnées recevront également une notification.
Il suffit d’ajouter ce code au fichier de fonctions de votre thème ou en tant que nouvel extrait WPCode pour retarder les publications dans votre flux RSS :
function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate('Y-m-d H:i:s');
// value for wait; + device
$wait = '10'; // integer
// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// add SQL-sytax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
Dans ce code, nous avons utilisé 10 minutes comme $wait ou délai d’attente. N’hésitez pas à modifier ce chiffre pour le remplacer par le nombre de minutes de votre choix.
Pour une méthode d’extension et plus d’informations, consultez notre guide détaillé sur la façon de retarder l’apparition des publications dans le flux RSS de WordPress.
19. Modifier le texte de Read More pour les extraits dans WordPress
Voulez-vous modifier le texte qui apparaît après l’extrait dans vos publications ? Ajoutez simplement ce code au fichier de fonctions de votre thème ou en tant que nouvel extrait de code WPCode :
function modify_read_more_link() {
return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );
20. Désactiver les flux RSS dans WordPress
Tous les sites n’ont pas besoin de flux RSS. Si vous souhaitez désactiver les flux RSS sur votre site WordPress, ajoutez ce module au fichier de fonctions de votre thème ou en tant que nouvel extrait de code WPCode :
function new_excerpt_more($more) {
global $post;
return '<a class="moretag"
href="'. get_permalink($post->ID) . '">Your Read More Link Text</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
En savoir plus sur une méthode par extension, voir notre guide sur la désactivation des flux RSS dans WordPress.
21. Modifier la longueur d’un extrait dans WordPress
WordPress limite la longueur des extraits à 55 mots. Vous pouvez ajouter ce code à votre fichier de fonctions ou comme un nouvel extrait WPCode si vous avez besoin de modifier cela :
function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');
Il suffit de modifier 100 pour qu’il corresponde au nombre de mots que vous souhaitez afficher dans les extraits.
Pour d’autres méthodes, vous pouvez consulter notre guide sur la façon de personnaliser les extraits WordPress (aucun codage nécessaire).
22. Ajouter un utilisateur/utilisatrice dans WordPress
Si vous avez oublié votre mot de passe et votre e-mail WordPress, vous pouvez ajouter un utilisateur administrateur en ajoutant ce code au fichier de fonctions de votre thème à l’aide d’un client FTP:
function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');
N’oubliez pas de remplir les champs identifiant, mot de passe et e-mail.
Importance : Une fois que vous vous êtes connecté à votre site WordPress, n’oubliez pas de supprimer le code de votre fichier de fonctions.
Pour en savoir plus sur ce Sujet, consultez notre tutoriel sur l ‘ajout d’un utilisateur/utilisatrice administrateur dans WordPress à l’aide du protocole FTP.
23. Désactiver le sélecteur de langue sur la page de connexion
Si vous gérez un site multilingue, WordPress affiche un sélecteur de langue sur la page de connexion. Vous pouvez facilement le désactiver en ajoutant le code suivant à votre fichier functions.php ou en tant que nouvel extrait WPCode :
add_filter( 'login_display_language_dropdown', '__return_false' );
24. Afficher le nombre total d’utilisateurs/utilisatrices inscrits dans WordPress
Voulez-vous afficher le nombre total d’utilisateurs/utilisatrices inscrits sur votre site WordPress ? Ajoutez simplement ce code au fichier de fonctions de votre thème ou en tant que nouvel extrait de WPCode :
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');
Ce code crée un code court qui vous permet d’afficher le nombre total d’utilisateurs/utilisatrices inscrits sur votre site.
Il ne vous reste plus qu’à ajouter le code court [user_count]
à votre publication ou page où vous souhaitez afficher le nombre total d’utilisateurs/utilisatrices.
En savoir plus et pour une méthode d’extension, consultez notre tutoriel sur l’affichage du nombre total d’utilisateurs/utilisatrices inscrits dans WordPress.
25. Exclure des catégories spécifiques du flux RSS
Voulez-vous exclure des catégories spécifiques de votre flux RSS WordPress ? Vous pouvez ajouter ce code au fichier de fonctions de votre thème ou en tant que nouvel extrait WPCode :
function exclude_category($query) {
if ( $query->is_feed ) {
$query->set('cat', '-5, -2, -3');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');
26. Désactiver les liens URL dans les commentaires WordPress
Par défaut, WordPress convertit une URL en lien cliquable dans les commentaires.
Vous pouvez y mettre fin en ajoutant le code suivant à votre fichier de fonctions ou en tant que nouvel extrait de WPCode :
remove_filter( 'comment_text', 'make_clickable', 9 );
Pour plus de détails, consultez notre article sur la désactivation de l’autolinking dans les commentaires WordPress.
27. Ajouter des classes CSS paires et impaires aux publications WordPress
Vous avez peut-être vu des thèmes WordPress utiliser une classe paire ou impaire pour les commentaires WordPress. Cela aide les utilisateurs/utilisatrices à visualiser où un commentaire se termine et où le suivant commence.
Vous pouvez utiliser la même technique pour vos publications WordPress. Elle est esthétique et aide les utilisateurs/utilisatrices à parcourir rapidement les pages contenant beaucoup de contenu.
Il suffit d’ajouter ce code au fichier de fonctions de votre thème :
function oddeven_post_class ( $classes ) {
global $current_class;
$classes[] = $current_class;
$current_class = ($current_class == 'odd') ? 'even' : 'odd';
return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';
Ce code ajoute simplement une classe paire ou impaire aux publications WordPress. Vous pouvez maintenant ajouter une CSS personnalisée pour les styliser différemment.
Voici un exemple de code pour vous aider à démarrer :
.even {
background:#f0f8ff;
}
.odd {
background:#f4f4fb;
}
Le résultat final ressemblera à ceci :
Vous avez besoin d’instructions plus détaillées ? Jetez un coup d’œil à notre tutoriel sur la façon d’ajouter des classes impaires/paires à vos publications dans les thèmes WordPress.
28. Ajouter des types de fichiers supplémentaires à téléverser dans WordPress
Par défaut, WordPress vous permet de téléverser un nombre limité de types de fichiers parmi les plus couramment utilisés. Vous pouvez toutefois l’étendre pour permettre d’autres types de fichiers.
Il suffit d’ajouter ce code au fichier de fonctions de votre thème :
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éverser des fichiers SVG et PSD dans WordPress.
Vous devrez trouver les types mime pour les types de fichiers que vous souhaitez permettre et les utiliser dans le code.
Pour en savoir plus sur ce Sujet, consultez notre tutoriel sur l’ajout de types de fichiers supplémentaires à téléverser dans WordPress.
29. Modifier le Nom de l’expéditeur dans les E-mails WordPress
WordPress utilise par défaut une adresse e-mail inexistante (wordpress@yourdomain.com) pour envoyer les e-mails sortants.
Cette adresse e-mail pourrait être signalée comme indésirable par les fournisseurs de services d’e-mail.
L’utilisation de l’extension WP Mail SMTP est la meilleure façon de corriger ce problème.
Il corrige les problèmes de délivrabilité des e-mails et vous permet de choisir une adresse e-mail réelle pour envoyer vos e-mails WordPress.
Pour en savoir plus, consultez notre guide sur comment corriger le problème de WordPress qui n’envoie pas d’e-mail.
En revanche, si vous souhaitez modifier rapidement cette adresse en une véritable adresse e-mail, vous pouvez ajouter le code suivant dans votre fichier de fonctions ou sous la forme d’un nouvel extrait WPCode :
// Function to change email address
function wpb_sender_email( $original_email_address ) {
return 'tim.smith@example.com';
}
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
return 'Tim Smith';
}
// Hooking up our functions to WordPress filters
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );
N’oubliez pas de remplacer l’adresse e-mail et le nom par vos propres informations.
Le problème avec cette méthode est que WordPress utilise toujours la fonction mail() pour envoyer des e-mails, et que ces e-mails ont toutes les chances de finir dans les indésirables.
Pour de meilleures modifications, consultez notre tutoriel sur la façon de modifier le nom de l’expéditeur dans les e-mails sortants de WordPress.
30. Ajouter une boîte d’information sur l’auteur/autrice dans les publications WordPress
Si vous gérez un site multi-auteurs et que vous souhaitez présenter les biographies des auteurs/autrices à la fin de vos publications, vous pouvez essayer cette méthode.
Commencez par ajouter ce code à votre fichier de fonctions ou en tant que nouvel extrait WPCode :
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));
// Get User Gravatar
$user_gravatar = get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );
if ( ! empty( $display_name ) )
$author_details = '<p class="author_name">About ' . $display_name . '</p>';
if ( ! empty( $user_description ) )
// Author avatar and bio will be displayed if author has filled in description.
$author_details .= '<p class="author_details">' . $user_gravatar . 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 noopener">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 devrez ajouter quelques feuilles de style CSS personnalisées pour améliorer l’aspect du site.
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;
}
Voici à quoi ressemblera votre boîte d’auteur/autrice :
Pour une méthode d’extension et des instructions plus détaillées, consultez notre article sur l’ajout d’une boîte d’information sur l’auteur/autrice dans les publications WordPress.
31. Désactiver XML-RPC dans WordPress
XML-RPC est une méthode qui autorise des applications tierces à communiquer à distance avec votre site WordPress. Cela peut poser des problèmes de sécurité et être exploité par des pirates.
Pour désactiver XML-RPC dans WordPress, ajoutez le code suivant à votre fichier de fonctions ou en tant que nouvel extrait WPCode :
add_filter('xmlrpc_enabled', '__return_false');
En savoir plus, vous pouvez consulter notre article sur la désactivation de XML-RPC dans WordPress.
32. Link automatique des images mises en avant dans les publications
Si votre thème WordPress ne lie pas automatiquement les images mises en avant aux articles complets, vous pouvez essayer cette méthode.
Il suffit d’ajouter ce code au fichier de fonctions de votre thème ou en tant que nouvel extrait de WPCode :
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 );
Vous pouvez consulter notre article sur la façon de lier automatiquement les images mises en avant aux publications dans WordPress.
33. Désactiver l’Éditeur de blocs dans WordPress
WordPress utilise un éditeur moderne et intuitif pour rédiger du contenu et modifier votre site. Cet éditeur utilise des blocs pour les éléments de contenu et de mise en page couramment utilisés, d’où son nom d’Éditeur de blocs.
Toutefois, il se peut que vous deviez utiliser l’ancien éditeur/éditrices classique dans certains cas d’utilisation.
La façon la plus simple de désactiver l’éditeur de blocs est d’utiliser l’extension Classic Editor. Toutefois, si vous ne souhaitez pas utiliser une extension distincte, il vous suffit d’ajouter le code suivant à votre fichier de fonctions ou en tant que nouvel extrait WPCode :
add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);
Pour plus de détails, consultez notre tutoriel sur la désactivation de l’Éditeur/éditrices de blocs et l’utilisation de l’Éditeur classique.
34. Désactiver les widgets en bloc dans WordPress
WordPress est passé des widgets classiques aux widgets en bloc dans WordPress 5.8. Les nouveaux widgets de bloc sont plus faciles à utiliser et vous donnent plus de contrôle sur la conception que les widgets classiques.
Cependant, certains utilisateurs/utilisatrices peuvent encore vouloir utiliser des widgets classiques. Dans ce cas, vous pouvez utiliser le code suivant dans le fichier de fonctions de votre thème ou en tant que nouvel extrait de WPCode :
add_filter( 'use_widgets_block_editor', '__return_false' );
Pour plus de détails, consultez notre article sur la désactivation des blocs de widgets (restauration des widgets classiques).
35. Afficher la date de la dernière mise à jour dans WordPress
Lorsque les internautes voient une publication ou une page sur votre blog WordPress, votre thème WordPress affiche la date de publication de l’article. Cela convient à la plupart des blogs et des sites statiques.
Cependant, WordPress est également utilisé par des sites où d’anciens articles sont régulièrement mis à jour. Dans ces publications, l’affichage de la date et de l’heure de la dernière modification de l’article est essentiel.
Vous pouvez afficher la date de la dernière mise à jour en utilisant le code suivant dans le fichier de fonctions de votre thème ou sous la forme d’un nouvel extrait WPCode :
$u_time = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
// Only display modified date if 24hrs have passed since the post was published.
if ( $u_modified_time >= $u_time + 86400 ) {
$updated_date = get_the_modified_time( 'F jS, Y' );
$updated_time = get_the_modified_time( 'h:i a' );
$updated = '<p class="last-updated">';
$updated .= sprintf(
// Translators: Placeholders get replaced with the date and time when the post was modified.
esc_html__( 'Last updated on %1$s at %2$s' ),
$updated_date,
$updated_time
);
$updated .= '</p>';
echo wp_kses_post( $updated );
}
Pour d’autres méthodes et plus de détails, consultez notre guide sur l ‘affichage de la dernière date de mise à jour dans WordPress.
36. Utiliser des noms de fichiers en minuscules pour les téléversements
Si vous gérez un site multi-auteurs, les auteurs/autrices peuvent téléverser des images avec des noms de fichiers en majuscules et en minuscules.
L’ajout du code suivant permet de s’assurer que tous les noms de fichiers sont en minuscules :
add_filter( 'sanitize_file_name', 'mb_strtolower' );
Note : Le code ne modifiera pas les noms de fichiers pour les téléversements existants. Pour des méthodes alternatives, consultez notre tutoriel sur la façon de renommer les images et les fichiers multimédias dans WordPress.
37. Désactiver la barre d’administration de WordPress sur l’interface publique
Par défaut, WordPress affiche la barre d’administration en haut lorsqu’un utilisateur connecté voit votre site.
Vous pouvez désactiver la barre d’administration pour tous les utilisateurs/utilisatrices à l’exception des administrateurs/administratrices du site. Il vous suffit d’ajouter le code suivant à votre fichier de fonctions ou en tant que nouvel extrait de WPCode :
/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );
Pour plus de détails, consultez notre guide sur la désactivation de la barre d’administration de WordPress pour tous les utilisateurs/utilisatrices à l’exception des administrateurs/administratrices.
38. Modifier le texte de Bonjour dans la zone d’administration
WordPress affiche un message d’accueil « Bonjour Admin » dans le tableau de bord WordPress. Le mot « Admin » est remplacé par le nom de l’utilisateur/utilisatrice connecté(e).
Vous pouvez modifier le message d’accueil par défaut en ajoutant le code suivant dans votre fichier de fonctions ou dans un nouvel extrait WPCode :
function wpcode_snippet_replace_howdy( $wp_admin_bar ) {
// Edit the line below to set what you want the admin bar to display intead of "Howdy,".
$new_howdy = 'Welcome,';
$my_account = $wp_admin_bar->get_node( 'my-account' );
$wp_admin_bar->add_node(
array(
'id' => 'my-account',
'title' => str_replace( 'Howdy,', $new_howdy, $my_account->title ),
)
);
}
add_filter( 'admin_bar_menu', 'wpcode_snippet_replace_howdy', 25 );
Pour plus de détails, consultez notre article sur la modification du message ‘Bonjour Admin’ dans WordPress.
39. Désactiver la modification du code dans l’éditeur de blocs
L’Éditeur de blocs vous permet de passer à l’Éditeur de code. Cela s’avère pratique si vous devez ajouter manuellement du code HTML.
Toutefois, vous pouvez souhaiter que cette fonctionnalité soit réservée aux administrateurs/administratrices du site.
Pour ce faire, vous pouvez ajouter le code suivant à votre fichier de fonctions ou sous forme d’extrait de code WPCode :
add_filter( 'block_editor_settings_all', function ( $settings ) {
$settings['codeEditingEnabled'] = current_user_can( 'manage_options' );
return $settings;
} );
40. Désactiver l’éditeur de fichiers d’extension/de thème
WordPress est livré avec un éditeur intégré dans lequel vous pouvez modifier les fichiers d’extension. Vous pouvez le voir en allant sur la page » Plugins » Éditeurs/éditrices de fichiers de plugins.
De même, WordPress propose un éditeur de fichiers pour les thèmes classiques à l’adresse Apparence » Theme File Editor.
Note : Si vous utilisez un thème bloc, l’éditeur/éditrices de fichiers de thème n’est pas visible.
Nous vous déconseillons d’utiliser ces éditeurs/éditrices pour apporter des modifications à votre thème ou à votre extension. Une minuscule erreur dans le code peut rendre votre site inaccessible à tous les utilisateurs/utilisatrices.
Pour désactiver l’éditeur de plugin/thème, ajoutez le code suivant à votre fichier de fonctions ou en tant qu’extrait WPCode :
// Disable the Plugin and Theme Editor
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
define( 'DISALLOW_FILE_EDIT', true );
}
Pour plus de détails, consultez notre thème sur la désactivation de l’éditeur de plugins/thèmes dans WordPress.
41. Désactiver les e-mails de notification aux utilisateurs/utilisateurs nouveaux
Par défaut, WordPress envoie un e-mail de notification lorsqu’un nouvel utilisateur rejoint votre site WordPress.
Si vous gérez un site Web d’adhésion WordPress ou si vous avez besoin que les utilisateurs/utilisatrices s’inscrivent, vous recevrez une notification chaque fois qu’un utilisateur rejoindra votre site.
Pour inactif ces notifications, vous pouvez ajouter ce qui suit à votre fichier de fonctions ou en tant que nouvel extrait de WPCode :
function wpcode_send_new_user_notifications( $user_id, $notify = 'user' ) {
if ( empty( $notify ) || 'admin' === $notify ) {
return;
} elseif ( 'both' === $notify ) {
// Send new users the email but not the admin.
$notify = 'user';
}
wp_send_new_user_notifications( $user_id, $notify );
}
add_action(
'init',
function () {
// Disable default email notifications.
remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );
// Replace with custom function that only sends to user.
add_action( 'register_new_user', 'wpcode_send_new_user_notifications' );
add_action( 'edit_user_created_user', 'wpcode_send_new_user_notifications', 10, 2 );
}
);
Pour plus de détails, consultez notre tutoriel sur la désactivation des notifications par e-mail des utilisateurs/utilisatrices nouveaux dans WordPress.
42. Désactiver les e-mails de notification de mise à jour automatique
Occasionnellement, WordPress peut installer automatiquement des mises à jour de sécurité et de maintenance ou mettre à jour une extension présentant une vulnérabilité critique.
Il envoie un e-mail de notification de mise à jour automatique après chaque mise à jour. Si vous gérez plusieurs sites WordPress, il se peut que vous receviez plusieurs e-mails de ce type.
Vous pouvez ajouter ce code à votre fichier de fonctions ou sous la forme d’un nouvel extrait de code WPCode afin d’inactif ces notifications par e-mail :
/ Disable auto-update emails.
add_filter( 'auto_core_update_send_email', '__return_false' );
// Disable auto-update emails for plugins.
add_filter( 'auto_plugin_update_send_email', '__return_false' );
// Disable auto-update emails for themes.
add_filter( 'auto_theme_update_send_email', '__return_false' );
Pour en savoir plus, consultez notre article sur la désactivation des e-mails de mise à jour automatique dans WordPress.
43. Ajouter un Link pour dupliquer facilement une publication
Vous avez déjà souhaité un moyen plus simple de copier rapidement tout le contenu d’une publication pour la modifier sans toucher à la publication elle-même ?
L’extrait de code suivant ajoutera une option permettant de dupliquer facilement une publication avec tout son contenu :
// Add duplicate button to post/page list of actions.
add_filter( 'post_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
// Let's make sure the function doesn't already exist.
if ( ! function_exists( 'wpcode_snippet_duplicate_post_link' ) ) {
/**
* @param array $actions The actions added as links to the admin.
* @param WP_Post $post The post object.
*
* @return array
*/
function wpcode_snippet_duplicate_post_link( $actions, $post ) {
// Don't add action if the current user can't create posts of this post type.
$post_type_object = get_post_type_object( $post->post_type );
if ( null === $post_type_object || ! current_user_can( $post_type_object->cap->create_posts ) ) {
return $actions;
}
$url = wp_nonce_url(
add_query_arg(
array(
'action' => 'wpcode_snippet_duplicate_post',
'post_id' => $post->ID,
),
'admin.php'
),
'wpcode_duplicate_post_' . $post->ID,
'wpcode_duplicate_nonce'
);
$actions['wpcode_duplicate'] = '<a href="' . $url . '" title="Duplicate item" rel="permalink">Duplicate</a>';
return $actions;
}
}
/**
* Handle the custom action when clicking the button we added above.
*/
add_action( 'admin_action_wpcode_snippet_duplicate_post', function () {
if ( empty( $_GET['post_id'] ) ) {
wp_die( 'No post id set for the duplicate action.' );
}
$post_id = absint( $_GET['post_id'] );
// Check the nonce specific to the post we are duplicating.
if ( ! isset( $_GET['wpcode_duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['wpcode_duplicate_nonce'], 'wpcode_duplicate_post_' . $post_id ) ) {
// Display a message if the nonce is invalid, may it expired.
wp_die( 'The link you followed has expired, please try again.' );
}
// Load the post we want to duplicate.
$post = get_post( $post_id );
// Create a new post data array from the post loaded.
if ( $post ) {
$current_user = wp_get_current_user();
$new_post = array(
'comment_status' => $post->comment_status,
'menu_order' => $post->menu_order,
'ping_status' => $post->ping_status,
'post_author' => $current_user->ID,
'post_content' => $post->post_content,
'post_excerpt' => $post->post_excerpt,
'post_name' => $post->post_name,
'post_parent' => $post->post_parent,
'post_password' => $post->post_password,
'post_status' => 'draft',
'post_title' => $post->post_title . ' (copy)',// Add "(copy)" to the title.
'post_type' => $post->post_type,
'to_ping' => $post->to_ping,
);
// Create the new post
$duplicate_id = wp_insert_post( $new_post );
// Copy the taxonomy terms.
$taxonomies = get_object_taxonomies( get_post_type( $post ) );
if ( $taxonomies ) {
foreach ( $taxonomies as $taxonomy ) {
$post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
wp_set_object_terms( $duplicate_id, $post_terms, $taxonomy );
}
}
// Copy all the custom fields.
$post_meta = get_post_meta( $post_id );
if ( $post_meta ) {
foreach ( $post_meta as $meta_key => $meta_values ) {
if ( '_wp_old_slug' === $meta_key ) { // skip old slug.
continue;
}
foreach ( $meta_values as $meta_value ) {
add_post_meta( $duplicate_id, $meta_key, $meta_value );
}
}
}
// Redirect to edit the new post.
wp_safe_redirect(
add_query_arg(
array(
'action' => 'edit',
'post' => $duplicate_id
),
admin_url( 'post.php' )
)
);
exit;
} else {
wp_die( 'Error loading post for duplication, please try again.' );
}
} );
Après avoir ajouté le code, allez dans l’écran » Toutes les publications » et passez votre souris sur le titre d’une publication.
Vous remarquerez un nouveau lien « Duplicator » sous les options.
En cliquant sur le lien, vous créerez une copie de la publication avec tout son contenu. Vous pouvez alors travailler sur ce brouillon.
Une fois terminé, vous pouvez copier et coller vos modifications dans la publication originale et supprimer la copie.
Pour une méthode par extension, voir notre article sur la duplication d’une publication ou d’une page WordPress.
44. Retirer le panneau d’accueil du Tableau de bord WordPress
Le panneau de bienvenue apparaît dans le tableau de bord d’administration de WordPress. Il peut être facilement ignoré ou masqué en cliquant sur le bouton « Options de l’écran ».
Toutefois, si vous souhaitez que le tableau de bord soit plus propre pour les utilisateurs/utilisatrices, vous pouvez le masquer de façon permanente.
Ajoutez le code suivant pour le désactiver pour tous les utilisateurs/utilisatrices de votre site :
add_action(
'admin_init',
function () {
remove_action( 'welcome_panel', 'wp_welcome_panel' );
}
);
45. Ajouter une colonne d’image mise en avant pour les publications dans l’administration de WordPress
Par défaut, WordPress affiche uniquement les images avant lorsque vous consultez votre site ou lorsque vous modifiez un article ou une page.
Le code suivant ajoutera une nouvelle colonne à l’écran « Tous les articles » pour les images mises en avant :
add_filter( 'manage_posts_columns', function ( $columns ) {
// You can change this to any other position by changing 'title' to the name of the column you want to put it after.
$move_after = 'title';
$move_after_key = array_search( $move_after, array_keys( $columns ), true );
$first_columns = array_slice( $columns, 0, $move_after_key + 1 );
$last_columns = array_slice( $columns, $move_after_key + 1 );
return array_merge(
$first_columns,
array(
'featured_image' => __( 'Featured Image' ),
),
$last_columns
);
} );
add_action( 'manage_posts_custom_column', function ( $column ) {
if ( 'featured_image' === $column ) {
the_post_thumbnail( array( 300, 80 ) );
}
} );
Voici à quoi cela ressemblerait après avoir ajouté le code.
46. Bloquer la zone d’administration de WordPress pour tout le monde sauf les administrateurs/administratrices
Certains sites WordPress peuvent nécessiter que les utilisateurs/utilisatrices inscrivent un compte. C’est le cas, par exemple, d’un site d’adhésion WordPress ou d’une boutique e-commerce.
La plupart des extensions de ce type empêcheront ces utilisateurs/utilisatrices d’accéder à la zone d’administration. Toutefois, si vous n’utilisez pas une telle extension, vous pouvez ajouter le code suivant pour empêcher tous les utilisateurs/utilisatrices, à l’exception des administrateurs/administratrices, d’accéder à la zone d’administration :
add_action( 'admin_init', function() {
if ( ! current_user_can( 'administrator' ) ) {
wp_redirect( home_url() );
exit;
}
} );
Les utilisateurs/utilisatrices ayant d’autres rôles peuvent toujours se connecter à leur compte, mais après s’être connectés, ils seront redirigés vers la page d’accueil.
Nous espérons que cet article vous a aidé à apprendre de nouvelles astuces utiles pour le fichier functions.php dans WordPress. Vous pouvez également consulter notre guide sur l’affichage du code dans WordPress pour partager facilement vos extraits et nos choix d’experts pour les meilleurs éditeurs/éditrices de code pour Mac et Windows.
Si vous avez aimé cet article, veuillez alors vous abonner à notre chaîne YouTube pour obtenir des tutoriels vidéo sur WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.
DANISH
such a great and useful tricks..
Marco
thank you so much!
Webtechideas
Such a nice list of useful tricks. It will help both plugin and theme developers.
ahmed
In #14, isn’t that a instead of ?
Mick O
Thanks for the helpful article. I really appreciate it. Can you possibly explain why the snippet to add Google analytics (#1) code includes the php declarations. If I have an existing functions.php file that is already defined with , do I need to include the markers again in the snippet? I’m trying to add other customizations into the functions.php and it’s getting hard to keep track.
Editorial Staff
It includes opening php because it is closing PHP tag to allow you to paste plain HTML Google analytics code.
Administrateur
Luke Gibson
The one about the copyright date seems a little OTT when you could simply cut and paste in © 2006- and it would do exactly the same job, just replace 2006 with whatever static start date you wish. Or am I missing something?
Editorial Staff
Yes, you can definitely do that. But if you are releasing this as part of a theme meant for distribution, then you can’t do that.
Administrateur
Zeeshan Arshad
Excellent, I was done with my theme and learning but there was much left. This post saved my day and of course I learnt many things as well.
Best Wishes!
DesignSkew
In « Add Author Profile Fields », the function you mentioned to echo is not working.
Editorial Staff
The curauth would only work if it is on author.php file.
Administrateur
Mark
Great set of tools. I immediately copied the guest author function as I saw it and will now disable a clumsy plugin I’ve been using. Do you have a function that will provide the post ID of the item being worked with in the editor? I’m trying to auto fill a form with media attachments for the current post but have only been able to get it to work in a custom meta-box but not in a thickbox . The thickbox returns all the media files for all the posts when I just want the current posts’s attachments.
mommyblogger
Thanks for the great Wordpress tips! I was hoping you could help me with an additional one?
I’d like to prevent my tags/categories from spilling over onto another line by limiting the number of tags/categories that appear in the footer of my individual homepage posts. Is it possible to do this with the « the_excerpt »? I would also like the excerpt to be a « …read more » link and limit the number of characters in it. Here is the code it would need to be added to;
$tags_list = get_the_tag_list( », __( ‘, ‘, ‘mummyblog’ ) ); if ( $tags_list ): ?> <li> <?php printf( __( ‘<span class= »%1$s »>Tagged</span> %2$s’, ‘mummyblog’ ), ‘entry-utility-prep entry-utility-prep-tag-links’, $tags_list ); ?> </li> <?php endif; // End if $tags_list ?>
Thanks!
SteveEBoy
Like all the others have said below – just too good, a massive help for a newbie and very useful for learning too. Great site all round. Thanks.
LambrosPower
one of the best tutorials i read. Many important topics pointed out and for sure i didn’t know most of them since i just started wordpress custom design.
Xiaozhuli
This article is endlessly useful. I bookmarked it and often refer to it when updating my theme or trying to answer a question. Great job!
Mohammad Yeasin
You guys are just awesome. You know what, wpbegineer is the first website for which i have a separate folder in my bookmark menu. Too good for a wp begineer. youe name suits ur personality. lolz. One day i would must do something special for you. Inshallah.
The only problem i face is related post with thumbnail. your coder are not working. vDont know what to do. Whatever, Keep up the marvelous job. Love the site wpbegineer.
AA
Great post! You obviously know a lot about wordpress coding so I’m hoping you can answer a question. How to you remove the date & time stamp from a wordpress feed-rss? I’ve looked everywhere and can’t find any information on this. I’m working on a wordpress « site » and do not have a use for the dates. I have already removed them from the posts & pages.
Much thanks in advance!
Editorial Staff
Date is NOT optional for RSS feeds. It is a MUST because that is how posts / articles are organized (reverse chronological order). You can remove the display of dates from the template, but you cannot remove them from the XML.
Administrateur
Michele Welch
Awesome post! Can’t wait to get started on the custom dashboard gravatar! Really exceptional post.
Phil
Great article, I’ve bookmarked it for future reference. Just found wpbeginner by chance what a great resource, thanks!
wparena
it is really good that you compiled all impotent things at one place
Mark Welburn
Good stuff, bookmarked this already. Can see a few of these come to good use more than once. Cheers, Mark.
Connor Crosby
Just a note, be careful when you copy and paste the « end of excerpt » function. It showed a question mark instead of « … » since it was one character. I had to rewrite « … » for it show up.
Martin
Probably the best post about the use of functions.php. Thanks for the tricks and for saving our time.
Huw Rowlands
Wow! Some really handy stuff there!
Thanks for sharing.
mark.
I would suggest an addendum be made to Tip #3 mentioning the fact that this is not security in any way shape or form, and is definitely not an alternative to upgrading as people should.
Hiding the version number is only beneficial to those of us who like to keep unnecessary junk out of the HEAD of your HTML document. Outside of that, it serves no purpose and should not be confused with security; to help illustrate that point: http://dd32.id.au/2010/07/31/what-version-of-wordpress-is-behind-that-website/
helpin
Could you tell me if I need to add these codes for every theme which my multi site have? Is there any there way which these codes automatically apply to the newly added themes?
Thanks !
Editorial Staff
You would have to add these to your theme’s functions.php file. So if it is a theme that is available on all networks, then only once. If there are custom themes being used on each network site, then you would have to do it on each….
Administrateur
Connor Crosby
Very nice list. I didn’t know you could do so much with the functions.php file!
Andy
You guys rock!!! Thanks for the awesome post.
Best,
Andy
Jennifer R
thanks you for these useful tricks
Marcelo Torres
Wow very good! Thanks for sharing
tarpontech
Best Damn Wordpress Article I’ve ever stumbled across.
ddeja
Thanks for those tips. Some are new for me. So I will be probably try to use them:)
Thanks again.
Chuck Reynolds
Since WP3 final release you need to update #11 to
add_theme_support( ‘menus’ );
Editorial Staff
Fixed thanks
Administrateur
William
Thanks for the insightful post. Registering sidebar widgets and customising the excerpt mode is going to be handy. Cheers
Kate Mag
Thanks for sharing extremely useful tricks. I didn’t know few tricks before, i know now!.
Adam
Okay, the dynamic copyright date in the footer is one of the coolest tricks for Wordpress I’ve come across. Always hate having to do that each year, but not anymore. Thanks for sharing that one!
Susan
Hi, I am trying to change the default gravatar. The option to choose my new gravatar is showing up however instead of my pic for my gravatar it is showing a broken pic link. I know the path works cause it does when I plug it in to the browser the pic comes up. I have also tried .gif, .png, .jpg and they are all broken. Also it is sized per my theme at 48px X 48px Can you help?
Susan
I finally got it!! Thanks for the awesome post btw.
Dave Z
There are some good suggestions here. Implementation could be improved for a few of them.
For instance, in #8 – Dynamic Copyright, it would probably be better to call the function during the publish_page and publish_post actions. Then, instead of printing the year to the screen, the value (year range) could be stored in the options table (with update_option()). In the theme, you would do something like: echo get_option( ‘comicpress_copyright’, date( ‘Y’ ) );. This would give the current year as the default date, or your preset range. The advantage here is that you eliminate the constant need to query the database for the years during every page load (since get_option can be configured to load automatically with the rest of the options). WordPress can already be heavy on database queries, no need to add an additional one if it can be avoided!
#18 – Remove Login Errors is removing -all- login errors, which could be bad because it also omits notices about disabled cookies, etc. A more effective approach would be to have the function return:
str_replace( array( ‘Invalid username’, ‘Incorrect password’ ), ‘Invalid username or password’, $str );
This keeps the user informed of potential errors while obfuscating which field the error actually occurred in. One thing to keep in mind is that if the username is correct, WordPress will auto-populate that field in subsequent login attempts. A hacker aware of WordPress operation would then know that the username was indeed valid. You can prevent this by commenting out the appropriate section in the wp-login.php file (lines 529-530 in version 2.9.2)–not ideal, I know, but there are no hooks at that point in the code.
Nice tips. I like the Post Thumbnails demonstration.
Editorial Staff
Thank you for your tips Really appreciate it.
Administrateur
Abdullah
Nice post.. very useful information.
Thnkx wpbeginner for making us more professional in our field.
Regards
Mohummad Abdullah
Zhu
Thank you for the tips, I already implemented a few (like the custom Gravatar) and they work just fine!
Waheed Akhtar
Great list. Bookmarked for any reference in future
Sahus Pilwal
Thanks for the extremely helpful tips. I wish I could find more extremely useful tricks/hack articles for WordPress!
Cheers, Sahus
patrick andrew adams
i can’t wait to try a few of these out, pretty new to wp still.
graphicbeacon
slight problem with NO. 14. Widget title starts with a h2 tag and ends with an h3- Wouldnt validate well methinks.
Todd Santoro
here is one for changing the login logo:
function the_custom_login_logo() {
echo ‘
h1 a { background-image:url(‘.get_bloginfo(‘template_directory’).’/images/custom-login-logo.gif) !important; }
‘;
}
add_action(‘login_head’, ‘the_custom_login_logo’);
Todd Santoro
Make sure you change the single quotes in this code to actuall single quotes as WP strips them in the comments so the PHP code is not executed. Better yet retype it and you will have no problem.
Cheers!
Kenton Bell
I am really impressed with this list, better options than hacking away at the theme files that get lost in upgrades. Thank you.
Raoni
Hi,
just an update, in item 4. Add a Custom Dashboard Logo, in WordPress 3 the « custom-logo.gif » now is a .png image.
Great collection!!!!
Andris
That was a very useful post. I just implemented « 4. Add a custom Dashboard Logo » to my Website.
Todd Santoro
Great post. I have this in my WP tool box now. It has everything a theme designer would need in one article. Thanks WPBeginner!
Jake Goldman
Great tips. Got a kick out of seeing a few of mine in there. lots of new tips coming soon in my next article!
Editorial Staff
Will keep my eyes open
Administrateur
Tony
Finally! I know how to cure the incorrect comment count! Thanks, WPBeginner!
DaveK
Brilliance, I will be putting quite a few of these to good use.
Congrats on the site guys you go from strength to strength, I usually manage to find something useful here.
Keep up the good work.