web-dev-qa-db-ja.com

頭から特定のCSSとJSを削除する

WP_HEADから特定の行を削除しようとしています。今私のヘッダは次のようになります:

<link rel='stylesheet' id='bootstrap-css'  href='/themes/wp-e/css/bootstrap.css?ver=4.2.2' type='text/css' media='all' />
<link rel='stylesheet' id='bootstrap-responsive-css'  href='/themes/wp-e/css/bootstrap-responsive.css?ver=4.2.2' type='text/css' media='all' />
<link rel='stylesheet' id='style-css'  href='/themes/wp-e/style.css?ver=4.2.2' type='text/css' media='all' />
<link rel='stylesheet' id='prettyPhoto-css-css'  href='/themes/wp-e/css/prettyphoto.css?ver=4.2.2' type='text/css' media='all' />
<link rel='stylesheet' id='custom-options-css'  href='/themes/wp-e/css/options.css?ver=4.2.2' type='text/css' media='all' />
<link rel='stylesheet' id='oswald_google-fonts-css'  href='http://fonts.googleapis.com/css?family=Oswald%3A400%2C300%2C700&#038;subset=latin%2Clatin-ext&#038;ver=4.2.2' type='text/css' media='screen' />
<link rel='stylesheet' id='thumbs_rating_styles-css'  href='/plugins/rating/css/style.css?ver=1.0.0' type='text/css' media='all' />

<script type='text/javascript' src='/js/jquery/jquery.js?ver=1.11.2'></script>
<script type='text/javascript' src='/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script>
<script type='text/javascript' src='/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=4.0.6'></script>
<script type='text/javascript' src='/plugins/rating/js/general.js?ver=4.0.1'></script>

これらすべてを削除する必要がありますが、コーディングが苦手です。

remove_action( 'wp_head', '???' );

しかし、私は???の代わりに何を入れるべきかわかりません。

2
IVO

頭の中の<style|script>タグを見ると、そこにid属性があります。例:

id='bootstrap-css'

ほとんどの場合、これはwp_enqueue_scriptswp_enqueue_styleswp_register_scriptsまたはwp_register_stylesフックにフックされた関数によって追加されました。最悪の場合、それはwp_headまたはwp_print_scriptsフックのいずれかにフックされました。

<script|style>タグを追加するこれらの呼び出しをバックトレースする過程で、小さなプラグインの中から、あるいはテーマや子テーマの中であなたのfunctions.phpを使って、添付されたものを見ることができるはずです。

// See if those scripts/styles were added using the Dependency API
// Search the output for the `id` you can see rendered in the DOM
printf( 
    '<pre>%s</pre>', 
    var_export( $GLOBALS['wp_scripts']->registered, TRUE )
);

上記の出力にスクリプト/スタイルが見つかると、アセットが正しく登録されたことがわかります(したがって、WordPress APIを使用したプラグインでの最適化やその他の処理に使用できます)。

それが当てはまる場合は、資産を検索します。

foreach( [
    'wp_enqueue_scripts',
    'wp_print_scripts',
    'wp_head',
] as $action )
    printf( 
        '<h1><code>%1$s</code></h1><pre>%1$s</pre>', 
        var_export( $GLOBALS['wp_filters'][ $action ], TRUE )
    );

3つの「ブロック」の情報が印刷されます。それぞれが配列内の特定のフックにアタッチされているコールバックの配列を含みます。あなたはそれからあなたのアセットの起源を見つけるためにあなたのテーマとプラグインのクロスファイル検索を使ってそれらを検索することができます。それから 登録解除 あなたが取り除きたいアクション。

4
kaiser