web-dev-qa-db-ja.com

デフォルトをロードしない WP ログイン画面のスタイル

自分のカスタムスタイルシートだけを読み込むためにログイン画面にデフォルトの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は最初にそのスタイルをロードします。この画面からそのファイルを除外したいです。

5
AlbertoFdzM

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' );
} );
5
Spencer

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' );
});

*この関数の中にはフィルタさえありますが、それは登録されたスタイルを捉えていないようです。

1
brasofilo

ログイン画面からスタイルを削除する方法を見つけました:

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');

他の人に役立つことを願っています。

0
AlbertoFdzM