覆盖 wp-login.php 样式


Override wp-login.php styles

我有一个Wordpress CMS网站,其中大多数标签都需要是白色的。因此,主题包括每个表单标签的以下样式。

.login label {
    color: #fff;
    font-size: 14px;
}

上面的样式是从/wp-login.php 文件中填充的——样式本身位于 login.min.css 中(直接包含在 wp-login.php 中)

我只需要为忘记密码屏幕覆盖它。

幸运的是,在这种情况下,我需要是黑色的两个标签都有自定义 ID 选择器。 #pass1 #pass2

我的问题是,我无法访问/wp-login.phplogin.min.css - 我尝试添加!important并在header.php中声明这两个选择器,但它们没有被读取。

我需要以某种方式添加; 在当前权限的情况下。

#pass1 { color: #000 !important; }

#pass2 { color: #000 !important; }

我可以使用 header.phpfooter.php 的 jQuery 来附加样式吗?会被读吗?

编辑

任何wp核心文件不是最佳做法,所以我建议无论如何都不要碰wp-login.php因为更新WordPress可以重置事情。

相反,请将其添加到您的函数中.php:

 // Custom login
function custom_login() {
        $files = '<link rel="stylesheet" href="'.get_bloginfo('template_directory').'/css/login.css" />';
        echo $files;
}
add_action('login_head', 'custom_login');

由于登录和忘记密码屏幕不依赖于主题,因此不会读取您的header.php文件,因此您在其中输入的任何样式都不会影响这些页面。

将此添加到您的template.php文件

function my_login_stylesheet() {
    wp_enqueue_style( 'custom-login', get_template_directory_uri() . '/style-login.css' );
}
add_action( 'login_enqueue_scripts', 'my_login_stylesheet' );

,然后将自定义样式添加到style-login.css

login_headlogin_enqueue_scripts是接一个的,所以你使用哪一个并不重要......

使用wp_enqueue_style是最佳做法,但可以毫无问题地echo '<link rel="stylesheet" ...>';

我正在添加一个解决方案,因为这不是您只是拖放到主题functions.php上的那种代码。即使我们交换主题,我们也希望保持代码运行。所以一个功能插件派上用场了:

<?php
/*
    Plugin Name: Login CSS
*/
function custom_login() {
   $CSS = <<<CSS
        <style>
            .login label {}
        </style>
CSS;
    echo $CSS;
}
add_action('login_head', 'custom_login');

检查以下内容以了解用于构建$CSS字符串的 Heredoc sintax:在 PHP 中使用 Heredoc 有什么好处?