Wednesday, May 2, 2012

WordPress で wp_head 関数の出力内容を変更する

WordPress の wp_head 関数 で出力される項目は、アクションフック "wp_head" に登録されている関数で制御されます。このため wp_head() の記述を削除してしまうと、このフックで出力される link script 等のタグに依存している設定やプラグインが動作しなくなります。

デフォルトで出力される項目は wp-includes/default-filters.php 内で add_action 関数により wp_head のフックで登録されています。

// Actions
add_action('wp_head', 'wp_enqueue_scripts', 1);
add_action('wp_head', 'feed_links', 2); 
add_action('wp_head', 'feed_links_extra', 3); 
....

wp_head で登録されているフックを参考に、functions.php 内で remove_action 関数により不要なフックを除去するようにします。

remove_action('wp_head', 'wp_enqueue_scripts', 1);
remove_action('wp_head', 'feed_links', 2); 
remove_action('wp_head', 'feed_links_extra', 3); 
....
//remove_action('wp_head', 'noindex', 1);
//remove_action('wp_head', 'wp_print_styles', 8);
remove_action('wp_head', 'wp_print_head_scripts', 9);  
remove_action('wp_head', 'wp_generator' );  
//remove_action('wp_head', 'rel_canonical' );
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);