X

Supprimer le code inutile de wp_head

WordPress inclut beaucoup de choses par le biais du crochet wp_head() inclus dans la plupart des thèmes. Je considère la plupart de ces éléments comme inutiles. Quelques lignes de code supplémentaires dans votre en-tête ne ralentiront probablement pas beaucoup votre site, mais j’aime garder les choses aussi propres et efficaces que possible.

Dans cet article, je vais voir comment supprimer ce qui suit de la sortie du crochet wp_head.

  • Lien Really Simple Discovery (RSD)
  • Lien Windows Live Writer
  • Avis du générateur WordPress
  • Liens relationnels de l’article

Lisez la suite pour la description de chacun d’entre eux, pour savoir si vous en avez besoin ou non, et comment les supprimer.

Découverte très simple

Il s’agit du code qui affiche le code suivant dans votre en-tête :

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd" />

Il s'agit du mécanisme de découverte utilisé par les clients XML-RPC.  Si vous n'avez aucune idée de ce que cela signifie et/ou si vous n'intégrez pas de services

comme Flickr à votre site WordPress, il est probablement prudent de le supprimer avec le code suivant dans le fichier de fonctions de votre thème.

remove_action('wp_head', 'rsd_link') ;

Windows Live Writer

C’est pourquoi vous voyez le code suivant dans votre en-tête.

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" />

Si vous n'utilisez pas Windows Live Writer, ce code vous est totalement inutile et doit être supprimé.

remove_action('wp_head', 'wlwmanifest_link') ;

Générateur WordPress

C’est ce qui affiche le numéro de version de WordPress dans votre en-tête.

<meta name="generator" content="WordPress 2.8.4" />

Personne n'a vraiment besoin de connaître la version exacte de WordPress que vous utilisez, il est donc prudent de supprimer cette ligne de code.

remove_action('wp_head', 'wp_generator') ;

Liens relationnels des articles

Les liens post-relationnels sont la raison pour laquelle ces éléments sont affichés sur différentes pages.

<link rel='index' title='Main Page' href='http://www.themelab.com' />
<link rel='start' title='Article in the distant past' href='http://www.themelab.com/hello-world/' />
<link rel='prev' title='The Post Before This One' href='http://www.themelab.com/post-before/' />
<link rel='next' title='The Post After This One' href='http://www.themelab.com/post-after/' />

Je n'ai pas encore trouvé de raison réelle de les conserver.  Certains navigateurs peuvent utiliser ce code pour naviguer sur votre site, bien que vous puissiez probablement obtenir le même effet avec un thème bien conçu.  Vous aurez besoin de trois lignes pour les supprimer tous.

remove_action('wp_head', 'start_post_rel_link') ;
remove_action('wp_head', 'index_rel_link') ;
remove_action('wp_head', 'adjacent_posts_rel_link') ;

Modèle Functions.php

Pour vous faciliter la tâche, voici tous ces éléments combinés pour un copier-coller facile dans le fichier functions.php de votre propre thème.

<?php
remove_action('wp_head', 'rsd_link') ;
remove_action('wp_head', 'wlwmanifest_link') ;
remove_action('wp_head', 'wp_generator') ;
remove_action('wp_head', 'start_post_rel_link') ;
remove_action('wp_head', 'index_rel_link') ;
remove_action('wp_head', 'adjacent_posts_rel_link') ;
?>

En fait, c'est tout le fichier

functions.php que j’utilise sur mon nouveau thème tweet archive. Si vous regardez le code, la balise <head> ne contient que trois lignes : la déclaration du meta charset, la balise title et le lien de la feuille de style.

Note sur les thèmes publiés

Lorsque vous développez des thèmes destinés à être diffusés, veillez à supprimer certains de ces éléments, en particulier les deux premiers : XML-RPC et le support de Windows Live Writer.

La raison devrait être assez évidente, car certains de vos utilisateurs utiliseront probablement quelque chose comme Windows Live Writer, et reviendront vers vous pour vous demander de l’aide lorsqu’ils n’arriveront pas à comprendre pourquoi cela ne fonctionne pas avec votre thème.

Les autres éléments, l’avis du générateur WordPress et les liens de relation avec les articles, peuvent probablement être supprimés en toute sécurité dans presque toutes les situations.

Conclusion

Comme je l’ai dit dans l’introduction, ce n’est pas très grave si vous ne supprimez pas ces éléments et je ne dirais pas qu’il s’agit d’un “must” pour chaque nouveau site WordPress que vous développez. Si vous êtes comme moi et que vous n’aimez pas les lignes de code inutiles, vous voudrez probablement les supprimer de toute façon pour que les choses fonctionnent aussi proprement que possible.

Pouvez-vous penser à d’autres fonctions que vous utilisez pour supprimer les lignes de code inutiles de WordPress ? Faites-le moi savoir dans les commentaires.

Commentaires   laisser une réponse

  1. Hello, I need help on WordPress that after making the page in WP I saw in the code (source code) that with every class name page builder has added his name which is confusing for me, for example, am using ELEMENTOR and making a page I saw in source code class name “.elementor-column-wrap”… now the problem is I want to remove the elementor words before the class name. I want to keep the class name as simple as that. no page builder name should be there… please let me know.

    1. You can’t remove it or you will break the Elementor

  2. Hello,

    Please tell me where to put this code in functions.php?
    Some blogs told that it should be put at the end, other blogs that it can be put in the beginning?

    Thanks in advance

    1. The position doesn’t matter at all. You can add it at the beginning or bottom.

  3. How can i remove from wp_head()

  4. Hello,
    Thanks for this post but please also add code to remove emoji script.
    Regards

      1. Thank you very much for help. Just want to tell you that my site got speed of 99 on mobile and 98 on desktop in google page speed test because of code mentioned above in post and emoji removal code.

        1. I am glad it helped!

  5. I don’t know why do theme developers put these in their themes as default in the first place.

    I used a very basic theme and modified it to suit my website but all these junk was still in my header (among with some other junk WordPress automatically loads).

    Thanks for this post, I found it very useful.

  6. Just found this post based on the adjacent_posts_rel_link_wp_head – This may work for you and your audience so I think it’s relevant… not trying to spam but…
    I threw a handful of functions and cleanup type of stuff that I hope works for everybody’s installs to help clean it up and get rid of some of the crap like the wp_head stuff you’ve posted here.

    the plugin, for lack of a better name, is Selfish Fresh Start… selfish because it’s the stuff I feel should be removed from every install lol.

    http://wordpress.org/extend/plugins/selfish-fresh-start/

  7. Yes, it used wp_head. Is that something I need to worry about?

  8. I don’t have any of these in my header except for the WordPress generator – in my theme this is in a comment with “leave this for stats please”

    What’s that about?

    1. Does your theme use the wp_head hook? It sounds like that “leave this for stats” bit is hardcoded into your theme’s header.php file.

  9. Great stuff, although I should add that there’s been a little change in WP 3.0 with adjacent_posts_rel_link. It is now adjacent_posts_rel_link_wp_head (not sure why it changed).

    I figured that out by going to /wp-includes/default-filters.php and reversing what was listed in the add_action section.

    Any idea why that would have changed?

    1. We changed its name because we modified (improved) how it works in a backwards incompatible way. Fine for core, as it is an enhancement, but if a plugin was using the original plugin the way core does, we don’t want to alter that functionality.

      The new function actually just calls the old function — http://core.trac.wordpress.org/ticket/10867

  10. Hi. Do you know how I can remove jquery being called automatically? Obviously it needs to be called in the admin site, but client side, I use mootools, so don’t want two js libraries being called.

    Thanks
    Tom

  11. Excellent post Leland! The relational links always bothered me a bit but I never looked into how to remove them.

    I think it’s also worth mention that a lot of the code added by plugins can also be removed: http://wptheming.com/2009/12/optimize-plug-in-script-wordpress/

    1. Hey Devin, thanks for the comment. That’s a good point about plugin code. Especially when plugins like Contact Form 7 automatically load up CSS and JS on every page, when you usually only need it on one (or any page you actually have a contact form).

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !