登録されたスタイル(またはスクリプト - 同じことが適用されます)のプロパティをロードする前に変更したいのですが。
今は登録されたスタイルをエンキューされる直前に変更しようとしているので、別のファイルを指定することができます(つまり、src
プロパティを変更します。登録済みのスタイルのプロパティを変更して、エンキューが正常に開始されるように、どこで$wp_styles
オブジェクトをフックして変更するかについてのアイデアを探します。
私は管理カラースキームを作っていて、私がすべてのページに追加のリクエストを追加する代わりに既存のエンキューを書き換えたり微調整したりできれば素晴らしいと思いました(すなわちcolors-fresh.css +私のスタイルシート - 私はむしろ持っていたほうがいいです)ある要求、なぜ元のスタイルシートを含めてすべてのスタイルを別のスタイルに再定義するだけなのか...
スタイルの登録を解除して自分のものを登録しますか? - エンキューが開始される前に単純にフックしてスタイルオブジェクトを調整する場合は、両方のカラースキーム(クラシック/フレッシュ)の登録を解除する必要があります。
それは可能だと確信していますが、頭を包み込むような頭脳の力を欠いています。
どんな提案も歓迎します....;)
私は要求を抑えることができるようにWordPressの管理スタイルシートの1つへのパスを微調整したいと思いました。2つのスタイルシートを含めることはほとんど意味がないためです。
この考えは基本的に既存のスタイルを別のスタイルシートに再設定することです。2つのフックが適切です。
style_loader_src
style_loader_tag
。前者はスタイルシートのURL(またはパス)とハンドル(スタイルが登録されている名前)だけを提供し、後者は含まれるスタイルシートの完全なHTML文字列(およびハンドル)を提供します。
私はstyle_loader_src
を使ってカラースタイルシートのパス(src)を切り替えることにしました。パスを調整し、現在のハンドルを知るために文字通り私が必要とするすべてなので、私のニーズにぴったり合っています。
ハンドルがカラースタイルシートかどうかを確認し、パスが正しい場合は更新します。
function switch_stylesheet_src( $src, $handle ) {
if( 'colors' == $handle )
$src = plugins_url( 'my-colors.css', __FILE__ );
return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );
上記のフィルタは基本的に既存のカラースタイルシート出力を取ります。
<link rel='stylesheet' id='colors-css' href='http://example.com/wp-admin/css/colors-fresh.css?ver=20100610' type='text/css' media='all' />
そしてそれをに変換します..
<link rel='stylesheet' id='colors-css' href='http://example.com/wp-content/plugins/my-plugin/my-colors.css' type='text/css' media='all' />
この方法は、追加のスタイルシートをキューに入れるよりも望ましいことです。リクエストが1つ少なく、スタイルを変更するときに必要なCSSオーバーライドがはるかに少ないため、代わりに独自のスタイルシートを読み込むリクエストをハイジャックします。
Admin cssファイルのURIを返す同名の関数でフィルタwp_admin_css_uri
を使用できます。例えば。:
function custom_modify_styles( $_file, $file ) {
if( 'style' == $file ) // $file = css filename without extension
$_file = 'my/new/path/to/style.css';
return $_file;
}
add_action( 'wp_admin_css_uri', 'custom_modify_styles', 10, 2 );