私はWordPressによって生成された<script>
タグをきれいにしてHTML5のためのもっと意味のある出力を生成したいです。
<style>
フィルタに添付されている次のコードを使用して、style_loader_tag
タグに対してすでにこれを実行できます。
//clean up the default WordPress style tags
add_filter('style_loader_tag', 'clean_style_tag');
function clean_style_tag($input) {
preg_match_all("!<link rel='stylesheet'\s?(id='[^']+')?\s+href='(.*)' type='text/css' media='(.*)' />!", $input, $matches);
//only display media if it's print
$media = $matches[3][0] === 'print' ? ' media="print"' : '';
return '<link rel="stylesheet" href="' . $matches[2][0] . '"' . $media . '>' . "\n";
}
しかし、コアに同等のscript_loader_tag
はまだありません。これは過去に提案されたですが、今のところ回避策が必要です。
私は /wp-includes/class.wp-scripts.php
の79行目のスクリプト出力(特にlines 117-120
)を保持しているfunction do_item( $handle, $group = false )
で調べ始めましたが、私はちょっと困ったここで使用できる適切なフィルタ.
あなたが本当にこれをしたいのなら、それはすでに可能なはずです。
global $wp_scripts
は、WP_Scripts
クラスのインスタンスで、インスタンスですWP_Dependencies
クラスの.
理論的には(テストされていませんが)、次のようなことができるはずです。
function alter_script_tags()
{
echo '<pre>';
print $GLOBALS['wp_scripts']->print_html;
echo '</pre>';
}
add_action( 'wp_enqueue_scripts', 'alter_script_tags', 999999 );
これは単なるラフスケッチですが、考えを理解する必要があります。
WPバージョンの互換性は不明ですが、 Soilプラグイン module clean-up.php
から Roots になります。あなたのテーマのfunctions.php
などで使用してください。
function clean_script_tag($input) {
$input = str_replace("type='text/javascript' ", '', $input);
return str_replace("'", '"', $input);
}
add_filter('script_loader_tag', 'clean_script_tag');