web-dev-qa-db-ja.com

Wp_headから特定のスタイルを削除する

私はWordPress開発者ではありません、私はWordPressウェブサイトを持っている友人を助けようとしています。これが問題です。

テンプレートでは、wp_head()関数がたくさんのスタイルとスクリプトを追加します。

私はいくつかのページでそれらのいくつかを削除したいのですがこれを言うことができます:

<link rel='stylesheet' id='yasrcss-css'  href='https://www.example.com/wp-content/plugins/yet-another-stars-rating/css/yasr.css' type='text/css' media='all' />

そこで私は周りを検索し、他の質問で提案されたことに基づいて、この行をfunctions.php(テーマフォルダの内側)に追加しました。

add_action( 'init', '_remove_style' );

function _remove_style() {
    wp_dequeue_style( 'yasrcss-css' );
    wp_dequeue_style( 'yasr.css' );
}

うまくいきませんでした、これもfunctions.phpに追加しました:

wp_deregister_style('yasrcss-css');

これもうまくいきませんでした。

私は何かが足りないのですが、他にやるべきことはありますか?

ところで、私はこのコードを試してみました:

printf( 
    '<pre>%s</pre>', 
    var_export( $GLOBALS['wp_scripts']->registered, TRUE )
);

提案どおり ここ 。それはその出力にその特定のCSSを持っていませんでした。

5
max

注:ファイル名はfunctions.phpであり、function.phpではありません(ただし、これはおそらく問題の誤植です)。

スクリプトやスタイルを削除するには、追加した後に削除する必要があります。追加する前にそれを削除しようとしても、あるいは$GLOBALS['wp_scripts']->registeredを印刷しようとしても、まだ追加されていないので何も起こりません。

そのため、それらを削除する方法は、できるだけ遅く_remove_style関数を実行することです。

また、最初にCSSファイルをエンキューするために使用された正しいハンドルを使用していることを確認する必要があります。この場合、正しいハンドルは次のとおりです。yasrcss@ thedeadmedic への貸方)。

これらすべてを組み合わせて、次のコードを試すことができます。

add_action( 'wp_enqueue_scripts', '_remove_style', PHP_INT_MAX );
function _remove_style() {
    wp_dequeue_style( 'yasrcss' );
}
4
Nazaria

いくつかの選択されたページからスタイルシートを削除するには、あなたのfunction.phpファイルを開いて、このファイルの中にコードの下に置いてください。 page id配列では、CSSを適用したくない特定のページのみをターゲットにします。

add_action('init','_remove_style');
function _remove_style(){
   global $post;
   $pageID = array('20','30', '420');//Mention the page id where you do not wish to include that script

   if(in_array($post->ID, $pageID)) {
       wp_dequeue_style('your_style_sheet.css'); 
   }
}