web-dev-qa-db-fra.com

Comment contrôler la sortie initiale de wp_head ()?

J'ai suivi le conseil habituel d'utiliser wp_head () dans header.php et wp_enqueue_scripts () au lieu de lier en dur les fichiers css et js dans header.php.

Cependant, j'ai réalisé que wp_head () génère beaucoup de choses dont je ne suis pas sûr si je veux vraiment qu'elles soient là. Par exemple. il y a des feuilles de style CSS traitant d'émoticônes et de smileys ... pour une raison quelconque.

//METTRE À JOUR

En dépit de mon écriture ci-dessus, je suis assez au courant des parties de wp_head () que je veux avoir dans ma section HTML Head.

// MISE À JOUR II

Je développe mon propre thème et je n’utilise qu’un seul plugin, Pods.io.

J'ai fait quelques recherches mais n'ai trouvé que des solutions qui suggèrent de modifier ultérieurement la sortie de wp_head () via des méthodes de mise en mémoire tampon de sortie (voir Supprimer une action d'une classe externe ). Pour moi, cela semble être une solution plutôt sale.

Par conséquent, ma question est, comment puis-je définir exactement la sortie par défaut de wp_head ()? Quels crochets sont disponibles pour déclencher certaines pièces de sortie? Veuillez noter que je sais comment ajouter le contenu de wp_head () via des crochets, mais pas comment - supprimer précisément les sorties non désirées.

1
Bunjip

Ici est la liste actuelle des actions actuellement connectées par défaut à wp_head

Republié ici pour éviter d'ouvrir inutilement plusieurs fenêtres de navigateur

add_action( 'wp_head',             '_wp_render_title_tag',            1     );
add_action( 'wp_head',             'wp_enqueue_scripts',              1     );
add_action( 'wp_head',             'feed_links',                      2     );
add_action( 'wp_head',             'feed_links_extra',                3     );
add_action( 'wp_head',             'rsd_link'                               );
add_action( 'wp_head',             'wlwmanifest_link'                       );
add_action( 'wp_head',             'adjacent_posts_rel_link_wp_head', 10, 0 );
add_action( 'wp_head',             'locale_stylesheet'                      );
add_action( 'wp_head',             'noindex',                          1    );
add_action( 'wp_head',             'print_emoji_detection_script',     7    );
add_action( 'wp_head',             'wp_print_styles',                  8    );
add_action( 'wp_head',             'wp_print_head_scripts',            9    );
add_action( 'wp_head',             'wp_generator'                           );
add_action( 'wp_head',             'rel_canonical'                          );
add_action( 'wp_head',             'wp_shortlink_wp_head',            10, 0 );
add_action( 'wp_head',             'wp_site_icon',                    99    );

if ( isset( $_GET['replytocom'] ) )
    add_action( 'wp_head', 'wp_no_robots' );

Vous pouvez supprimer n'importe quelle action avec remove_action()

remove_action( 'wp_head', 'wp_print_styles, 8 );

N'oubliez pas qu'une action doit être supprimée avec la même priorité que celle qui a été ajoutée.

En bonus, vérifiez ce message épique de @ChristineCooper sur la façon de supprimer les émojicons

MODIFIER

Une note importante ici. Les actions suivantes ne doivent pas être supprimées car cela pose de sérieux problèmes de chargement des feuilles de style et des scripts.

  • locate_stylesheet

  • wp_print_styles

  • wp_generator

  • wp_enqueue_scripts

Si vous avez besoin de supprimer quelque chose de spécifique, supprimez plutôt la fonction de rappel avec remove_action ou utilisez les fonctions spécifiques allouées pour supprimer les styles et les scripts.

7
Pieter Goosen

Le hook wp_head est simplement un hook.

Les thèmes et les plugins utilisent ce crochet pour ajouter des éléments dont ils ont besoin dans l'en-tête, comme css et js. Très souvent, ils mettent en file d'attente les scripts inutiles dans chaque page au lieu de les limiter dans des pages spécifiques.

Ainsi, vous pouvez soit vérifier vos plugins et votre thème où il enque les scripts et les éditer, soit utiliser remove_action pour les supprimer.

0
panos