自分のカスタムスタイルシートだけを読み込むためにログイン画面にデフォルトのWordPressスタイルを読み込まないようにする方法はありますか?
実際に私はこのコードを使っています:
function login_styles() {
// Sets the styles if is the current theme
if (get_stylesheet_directory() == get_template_directory()) {
// Prints link to stylesheed login.css
wp_register_style(...);
wp_enqueue_style(...);
}
}
add_action( 'login_enqueue_scripts', 'login_styles' );
それはうまく機能しますが、WordPressは最初にそのスタイルをロードします。この画面からそのファイルを除外したいです。
wp_deregister_style( 'login' )
を使用してログインスタイルを削除しても、ログインCSSファイルに対するリクエストは404になります。ただし、登録解除後にログインスタイルを再登録すると、不要な要求を防ぐことができます。
add_action( 'login_init', function() {
wp_deregister_style( 'login' );
wp_register_style( 'login' );
} );
これはあなたに全く昔ながらのwp-login.php
ページを残すでしょう。再スタイルするには、代わりにlogin
ハンドルの下に独自のCSSファイルを登録することができます。
これはstyle_loader_tag
フィルタをいじるよりも役に立つかもしれません。
更新:
login_enqueue_scripts
はより適切なアクションであり、デキューしても404にはなりません。
add_action( 'login_enqueue_scripts', function() {
wp_dequeue_style( 'login' );
} );
G.M.のリードに従って削除された回答にコメントして、ログインスタイルがwp_admin_css()
で印刷されていることを指摘しました。 *
、style_loader_tag
という仕事をするフィルタを見つけました。 しかし、さらにテストした結果、。wp_deregister_style
で十分であることがわかりました。
フィードバックとさらにテストを重ねると、スタイルの登録を解除するとwp-admin.css
に404が生成されることがわかります。したがって、loaderタグに戻ります。
add_action( 'login_init', function()
{
# Produces a 404 for the style
// wp_deregister_style( 'wp-admin' );
# The following is a filter in /wp-includes/class.wp-styles.php
# Completely cleans up the <head> of enqueues
add_filter( 'style_loader_tag', '__return_null' );
});
*
この関数の中にはフィルタさえありますが、それは登録されたスタイルを捉えていないようです。
ログイン画面からスタイルを削除する方法を見つけました:
function login_styles_reset( $style ) {
if ( strpos( $style, 'wp-admin-css') !== FALSE ) {
$style = NULL;
} elseif ( strpos( $style, 'colors-fresh-css') !== FALSE ) {
$style = NULL;
}
return $style;
}
function custom_login_styles() {
add_filter( 'style_loader_tag', 'login_styles_reset' );
// Code for the new login styles
}
add_action( 'login_init', 'custom_login_styles');
他の人に役立つことを願っています。