テンプレートをフルカスタマイズで作ろうとしたとき、wp_head() で表示される内容が不要なのでどうにかできないものか。
はじめは、wp_head() メソッド自体をテンプレートに記述しないようにしていたのですが、将来的にプラグインを使用したときに必要になるかもと思い、wp_head() を記述しつつも、表示される内容を空っぽにしたい。
ググるといろいろ出てきます。感謝です。
wp_head() で表示される内容をリセット
wp_head() で表示される内容をリセットするために、自分のfunctions.phpに追記している内容はコレ。
(表示されるソースを見ながら、ひとつずつ実行すれば何が表示されなくなるかひとつひとつ確認できるます。実際に試す場合はバックアップは忘れずに)
- functions.php
-
remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'wp_shortlink_wp_head' ); remove_action( 'wp_head', 'rest_output_link_wp_head' ); remove_action( 'wp_head', 'wp_oembed_add_discovery_links' ); remove_action( 'wp_head', 'wp_oembed_add_host_js' ); remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'wp_head', 'noindex', 1 ); remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10 ); remove_action( 'wp_head', 'feed_links_extra', 3); function remove_dns_prefetch( $hints, $relation_type ) { if ( 'dns-prefetch' === $relation_type ) { return array_diff( wp_dependencies_unique_hosts(), $hints ); } return $hints; } add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 ); function my_delete_head() { wp_deregister_script( 'jquery' ); wp_deregister_script( 'dashicons' ); wp_deregister_style( 'contact-form-7' ); } add_action( 'wp_enqueue_scripts', 'my_delete_head' );
プラグイン「Contact Form 7」で呼び出されるCSSも削除
レイアウトはオリジナルのCSSを使って調整したいため、Contact Form 7で呼び出されるCSSも削除しています。
wp_deregister_style( 'contact-form-7' );
他のプラグインで呼び出されたCSSも不要の場合は、wp_deregister_style(“id名*”)でだいたい削除できそうです。
*id名はid名末の「-css」を除外した名前。
例) contact-form-7-css → contact-form-7