web-dev-qa-db-ja.com

WordPressによって生成されたApple-touch-iconリンクを削除する

WordPressがデフォルトで追加しているものよりも適切な方法で、自分のサイトにFaviconsとIconsを手動で追加しています。私のWordPressは以下の4行のコードを自動的に生成しています。

<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">

私はたくさん試みましたが、WordPressがこれを生成しないようにする方法を見つけ出すことができませんでした。

親切に助けて

更新:@Garethが提供する機能を使用した後、次のようなエラーが表示されます。

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

最後に私はこの場所の外で答えを見つけた、それはそれが私のような誰かに役に立つかもしれないのでそれ故に私はそれをここに投稿している。

これを単純にfunctions.phpファイルに追加してください。

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

私は私のfunctions.phpで次のコマンドを使って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');

このようにして、ハードセットされたインデックス値を使用するのではなく、メタタグの配列内のアイコンを見つけます。これにより、配列内のこの項目の位置が変わっても問題が起きなくなります。

1
KZeni

metaタグが定義されているgeneral-template.phpの2446行目を見ると、それらは$ meta_tagsの配列で定義されています。私が望む2つのオプションを削除する唯一の方法は、次のとおりです。

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

それはあなたの投稿の2行である配列から最後の2つのアイコンを削除するはずです。

私はこれをテストしていません、そしておそらくそれは理想的な解決策ではありません(うまくいけば他の誰かがより良い方法を考え出すことができるでしょう)。

0
Gareth Gillman