web-dev-qa-db-ja.com

Wp_head()の初期出力を制御するにはどうすればいいですか?

私は一般的なアドバイスに従い、header.phpのcssファイルとjsファイルをハードリンクする代わりに、header.phpとwp_enqueue_scripts()の中でwp_head()を使用するようにしました。

しかし、私はwp_head()がたくさんのものを出力することに気付きました。例えば。絵文字やスマイリーを扱うCSSスタイルシートもあります…どんな理由でも。

//更新

私の上記の執筆にもかかわらず、私は私のHTML Headセクションにwp_head()のどの部分が欲しいのかかなりわかっています。

// UPDATE II

私は私自身のテーマを開発しています、そして私はPods.ioである使用中のただ一つのプラグインを持っています。

私はいくつかの調査をしましたが、その後に出力バッファリングメソッドを介してwp_head()の出力を変更することを提案する解決策のみを見つけました( 外部Classからのアクションの削除 を参照)。私には、それはかなり汚い解決策のようです。

したがって、私の質問は、どうすればwp_head()のデフォルトの出力を正確に定義することができるのかということです。特定の出力部分をトリガするために利用できるフックは何ですか? Plsは注意して、私は フックを介してwp_head()に contentを追加する方法を知っていますが、 正確に 不要な出力を削除する方法はわかりません。

1
Bunjip

ここで は現在デフォルトでwp_headにフックされている現在のアクションのリストです。

不必要に複数のブラウザウィンドウを開くことを避けるためにここに再投稿

add_action( 'wp_head',             '_wp_render_title_tag',            1     );
add_action( 'wp_head',             'wp_enqueue_scripts',              1     );
add_action( 'wp_head',             'feed_links',                      2     );
add_action( 'wp_head',             'feed_links_extra',                3     );
add_action( 'wp_head',             'rsd_link'                               );
add_action( 'wp_head',             'wlwmanifest_link'                       );
add_action( 'wp_head',             'adjacent_posts_rel_link_wp_head', 10, 0 );
add_action( 'wp_head',             'locale_stylesheet'                      );
add_action( 'wp_head',             'noindex',                          1    );
add_action( 'wp_head',             'print_emoji_detection_script',     7    );
add_action( 'wp_head',             'wp_print_styles',                  8    );
add_action( 'wp_head',             'wp_print_head_scripts',            9    );
add_action( 'wp_head',             'wp_generator'                           );
add_action( 'wp_head',             'rel_canonical'                          );
add_action( 'wp_head',             'wp_shortlink_wp_head',            10, 0 );
add_action( 'wp_head',             'wp_site_icon',                    99    );

if ( isset( $_GET['replytocom'] ) )
    add_action( 'wp_head', 'wp_no_robots' );

remove_action() で任意のアクションを削除できます

remove_action( 'wp_head', 'wp_print_styles, 8 );

ただ覚えておいて、それが追加されたのと同じ優先順位でアクションを削除する必要があります。

ボーナスとして、 @ChristineCooperからのこの壮大な投稿をチェックしてください 絵文字を削除する方法について

編集

ここに重要な注意があります。スタイルシートやスクリプトがどのようにロードされるかについて深刻な問題が発生するため、次のアクションは削除しないでください。

  • locate_stylesheet

  • wp_print_styles

  • wp_generator

  • wp_enqueue_scripts

特定のものを削除する必要がある場合は、remove_actionを使用してコールバック関数を削除するか、スタイルやスクリプトを削除するために割り当てられた特定の関数を使用します。

7
Pieter Goosen

Wp_headフックは単にフックです。

テーマとプラグインはこのフックを使ってcssやjsのようにヘッダに必要なものを追加します。多くの場合、それらは特定のページでそれらを制限するのではなく、すべてのページで不要なスクリプトをエンキューします。

そのため、プラグインとテーマがスクリプトを実行する場所を確認してそれらを編集するか、remove_actionを使用してそれらを削除できます。

0
panos