Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coupe WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

46 astuces extrêmement utiles pour le fichier de fonctions de WordPress

Note éditoriale : Nous percevons une commission sur les liens des partenaires sur WPBeginner. Les commissions n'affectent pas les opinions ou les évaluations de nos rédacteurs. En savoir plus sur Processus éditorial.

Vous vous demandez ce que vous pouvez faire avec le fichier de fonctions de WordPress ?

Tous les thèmes WordPress sont livrés avec un fichier functions.php. Ce fichier agit comme une extension, permettant aux développeurs/développeurs de thèmes et aux utilisateurs/utilisatrices en général d’ajouter facilement du code personnalisé dans WordPress.

Dans cet article, nous allons vous afficher quelques astuces utiles pour le fichier de fonctions de WordPress.

Handy WordPress functions file tips and hacks

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, conserver le code personnalisé dans le fichier functions de votre thème n’est pas la meilleure façon d’enregistrer vos personnalisations. Si vous mettez à jour votre thème, le fichier functions.php sera écrasé et vous perdrez vos extraits de code personnalisés.

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.

La meilleure partie est que tout votre code personnalisé est enregistré séparément, de sorte que toute mise à jour de WordPress ne les retirera pas.

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.

wpcode library

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 :

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.

Add snippet

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.

Adding your custom 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 ».

Activate and save

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

Edit functions.php file

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.

Vous souhaitez libeller votre zone d’administration WordPress en marque blanche ? L’ajout d’un logo de tableau de bord personnalisé constitue la première étape du processus.

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.

Admin footer

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 :

Custom dashboard widget

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.

Custom default gravatar

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.

Add to footer using WPCode

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.

Random background colors

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.

Custom menu location

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.

New profile fields

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.

Custom widget area

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.

Custom login errors

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

Pour une méthode d’extension et plus d’informations, 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 :

Alternating background colors

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.

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.

WP Mail SMTP

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 :

Author bio box

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.

Last updated date

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

Howdy greeting

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.

Plugin file editor in WordPress

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.

Theme file editor

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.

Duplicate post link

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

Welcome panel

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.

Featured image column

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 de WordPress. Vous pouvez également consulter notre guide ultime pour booster la vitesse et les performances de WordPress et nos choix d’experts pour les meilleurs éditeurs/éditrices de code pour Mac et Windows.

Divulgation : Notre contenu est soutenu par les lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons gagner une commission. Consultez comment WPBeginner est financé, pourquoi cela compte et comment vous pouvez nous soutenir. Voici notre processus éditorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

L'ultime WordPress Toolkit

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tous les professionnels devraient avoir !

Reader Interactions

115 commentairesLaisser une réponse

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Moinuddin Waheed says

    So much to accomplish with the help of functions.php
    I think this is the core of the WordPress and if we do too much to it, we may lose many core functionalities.
    having said this, using wpcode is a wise idea to insert anything for functionality without compromising the WordPress core.
    I have a question though, if wpcode doesn’t insert it’s code in the main functions.php then how it works?
    and if inserts it into the same, how updating wordpress doesn’t erase it?

    • WPBeginner Support says

      The code is stored in your database and the plugin hooks in the code in different ways depending on how you set it in the plugin.

      Administrateur

  3. Jiří Vaněk says

    I’ve noticed that on some websites, the top part of the browser changes color, specifically on mobile Chrome. Do you have any tested snippet that accomplishes this?

  4. Ralph says

    A lot of great ideas explained in novice friendly way. Thanks! I will try adding featured images to RSS feeds. It never worked before for some reason and now it will :)

  5. Ben says

    This is a pretty dangerous idea. Query strings exist for the purposes of cache busting, aka, making sure the end user has the latest version your js and css files.

    Removing those is going to cause all sorts of issues for returning users down the line as their browser will assume nothing has changed and use their cached version rather than downloading the new one.

    If for some reason you need to target a specific file and remove the query string (which I’ve had to do) you can use this code snippet:

    // remove version from scripts and styles
    function remove_version_scripts_styles($src) {
    if (strpos($src, ‘yourfile.js’)) {
    $src = remove_query_arg(‘ver’, $src);
    }
    return $src;
    }
    add_filter(‘script_loader_src’, ‘remove_version_scripts_styles’, 9999);

  6. Gean Paulo Francois says

    Very useful article. I just saved this page offline so I can insert some of these with my websites. Anyway, should I add the codes to functions,php and not anywhere else?

  7. Hussain Badusha says

    Nice compendium of some useful tricks and functions for wordpress. I added quite a new things to my wordpress knowledge after going through here.

    I look forward even more from you if you wish to

  8. vivek says

    Nice article,

    Just have a doubt if I am supposed to add these codes in snippets plugin or somwhere in file? if its snippet plugin, it’s not working. Kindly put some light.
    Thanks

    • WPBeginner Support says

      You would add these codes as a custom plugin or more commonly in your functions.php file

      Administrateur

  9. Miley Cyrus says

    Great Article it its really informative and innovative keep us posted with new updates. its was really valuable. thanks a lot.

  10. John Dee says

    Almost NONE of these code snippets belong in your theme’s functions.php file. Only a few of them are related to the actual theme. Themes are for APPEARANCE. Create a PLUGIN for functionality. In any case, it would go in child theme’s functions.php file.

    • WPBeginner Support says

      Thank you for pointing this out, while we do mention site-specific plugins at the beginning of this article, we will be sure to look into making that statement clearer.

      Administrateur

  11. Richard Yzenbrandt says

    Thank you so much for making this resource available. WP for Beginners is the best goto site on the web!

  12. alok patel says

    hey i am unable to add my post on specific page. when i write any blog post it shows in home page but i wanna also see in specific pages where i want to add. how i can out of from this problem. plz help me as soon as possible. if any video link thn plz share with reply. i m getting too much confused.

  13. DONALD says

    I am creating a form to collect data from my users.
    I have created the database from myphpAdmin
    I have created the form.
    I now created a new php.file in my child theme
    I referenced it in the form too using action = « name.php »
    Now i expect it to gather, peoples registration details.
    But clicking on submit on the form, says, page cannot be found.
    I dont know what i am not getting right.
    Please help me

  14. Shafiq Khan says

    Very useful post thanks.

    A question – Because you’re updating the functions.php of a theme.
    If you update the theme then you lose your tweaks.

    Is there a way around this? Is it just a cause of using a Child theme?

    Thanks

    • Lisa says

      Hi Shafiq,

      Any changes you make to a parent theme will be overwritten when you update it. It is good practice to work with a child theme when making changes to a theme you didn’t build that is going to be updated so that you can keep the changes you made.

    • Jan says

      I use the plugin ‘My Custom Functions’ – it is simply adding all functions to the functions.php automatically – so no re-writing after every update needed :)

    • Jane Lawson says

      This is late, but you can also create a plugin for your site (e.g. « [Site name]’s custom plugin »). It does require a bit of expertise, however, since some functions clash with other plugins/the site theme.

  15. Al1 says

    Another one :

    // Remove query string from static files :
    function remove_cssjs_ver( $src ) {
    if( strpos( $src, ‘?ver=’ ) )
    $src = remove_query_arg( ‘ver’, $src );
    return $src;
    }
    add_filter( ‘style_loader_src’, ‘remove_cssjs_ver’, 10, 2 );
    add_filter( ‘script_loader_src’, ‘remove_cssjs_ver’, 10, 2 );

  16. Andrew says

    I tried #16 to add the post featured thumbnail to m RSS feed but when I tested it in mailchimp (paused my campaign and previewed) it appears that it has changed from « summary » to « full text »? Is this expected behaviour? I want to leave the emails (rss driven) as summary, and simply add the thumbnail featured image at the top.

    Thanks for any help, I can’t find this on google anywhere.

  17. Em Cloney says

    re: removing rss feed for static pages — is it correct that the txt one would replace in that code is ‘url’ (with a page link, including ) and ‘homepage’ (if you’d like it to say something else, like ‘some other site’)?

  18. Mick O says

    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.

  19. Luke Gibson says

    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?

  20. Zeeshan Arshad says

    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!

  21. Mark says

    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.

  22. mommyblogger says

    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!

  23. SteveEBoy says

    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.

  24. LambrosPower says

    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.

  25. Xiaozhuli says

    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!

  26. Mohammad Yeasin says

    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.

  27. AA says

    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 says

      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

Laisser une réponse

Merci d'avoir choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés selon notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.