私は自分で作ったテーマをHTML 5に更新しましたが、すでにいくつかの変更を簡単に加えました。
私のテーマの唯一のスタイルシートは、次のようにwp_enqueue_style
ファイルのfunctions.php
を介してページヘッドに追加されます。
function gridded_enqueue_styles() {
wp_enqueue_style('style', get_template_directory_uri() . '/style.css', array(), null, 'all');
}
add_action('wp_enqueue_scripts', 'gridded_enqueue_styles');
結果のマークアップは次のとおりです。
<link rel='stylesheet' id='style-css' href='http://grantpalin.com.dev:81/wp-content/themes/gridded/style.css' type='text/css' media='all' />
スタイルシートがロードされ、ページがレンダリングされました。ただし、HTML 5仕様では、type
、link
、およびstyle
の各要素にはscript
属性が不要になったことが示されています。
コーデックス参照 を見ると、type
属性を変更または削除する方法がわかりません。これでもできますか?
明らかな回避策は、私のheader.php
にスタイルシート参照をハードコードすることですが、それはエンキュー機能の利点を避けています。
この出力を修正するために、そのフィルタを使うことができます。
function wpse51581_hide_type($src) {
return str_replace("type='text/css'", '', $src);
}
add_filter('style_loader_tag', 'wpse51581_hide_type');
このフックをwp-includes/class.wp-styles.php
に見ることができます
add_filter( 'style_loader_tag', 'html5_style_tag' );
function html5_style_tag( $tag ) {
return preg_replace( '~\s+type=["\'][^"\']++["\']~i', '', $tag );
}