web-dev-qa-db-fra.com

Supprimer le lien Apple-touch-icon généré par WordPress

J'ajoute manuellement des favicons et des icônes à mon site de manière plus appropriée que ce que WordPress ajoute par défaut. Mon WordPress génère automatiquement les 4 lignes de code ci-dessous.

<link rel="icon" href="http://example.com/wp-content/uploads/sites/3/2015/09/cropped-group_logo-32x32.png" sizes="32x32">
<link rel="icon" href="http://example.com/wp-content/uploads/sites/3/2015/09/cropped-group_logo-192x192.png" sizes="192x192">
<link rel="Apple-touch-icon-precomposed" href="http://example.com/wp-content/uploads/sites/3/2015/09/cropped-group_logo-180x180.png">
<meta name="msapplication-TileImage" content="http://example.com/wp-content/uploads/sites/3/2015/09/cropped-group_logo-270x270.png">

J'ai beaucoup essayé, mais je ne savais pas comment empêcher WordPress de générer cela.

Aide aimablement

Mise à jour: Après avoir utilisé la fonction fournie par @Gareth, j'obtiens l'erreur suivante:

Warning: array_filter() expects parameter 1 to be array, null given in C:\xampp\htdocs\example\wp-includes\general-template.php on line 2466

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\example\wp-includes\general-template.php on line 2468
1
Vikram

Enfin, j'ai trouvé la réponse en dehors de cet endroit, c'est pourquoi je la poste ici, car elle pourrait être utile à quelqu'un comme moi.

Ajoutez simplement ceci à votre fichier functions.php

remove_action ('wp_head', 'wp_site_icon', 99);
5
Vikram

J'ai pu utiliser les éléments suivants dans mon functions.php pour supprimer l'icône Apple-touch-icon:

// Don't use the Site Icon as Apple Touch Icon (instead, use those for favicon & others while the touch icon is provided elsewhere)
function removeAppleTouchIconFilter($string) {
  return strpos($string, 'Apple-touch-icon') === false;
}
function prevent_Apple_touch_icon_metatag($meta_tags){
    return array_filter($meta_tags, 'removeAppleTouchIconFilter');
}
add_filter('site_icon_meta_tags','prevent_Apple_touch_icon_metatag');

Ainsi, il trouve l’icône dans le tableau de balises méta plutôt que d’utiliser une valeur d’index fixe. Cela devrait éviter les problèmes si la position de cet élément dans le tableau change.

1
KZeni

en regardant la ligne 2446 de general-template.php où les balises META sont définies, elles sont définies dans un tableau de $ méta_tags, la seule façon dont je pourrais penser à supprimer les 2 options souhaitées est la suivante:

function theme_metatags($meta_tags) {
 array_splice($meta_tags, 2);
}
add_filter('site_icon_meta_tags', 'theme_metatags');

Cela devrait supprimer les 2 dernières icônes du tableau, qui sont les 2 lignes de votre message.

Je n'ai pas testé cela et ce n'est probablement pas la solution idéale (j'espère que quelqu'un d'autre pourra trouver un meilleur moyen).

0
Gareth Gillman