覆盖wp-login.php样式

时间:2015-01-22 21:30:50

标签: php jquery css wordpress

我有一个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来追加样式吗?它会被阅读吗?

3 个答案:

答案 0 :(得分:1)

编辑任何wp核心文件不是最佳做法,因此我建议不要触摸wp-login.php,因为更新WordPress可以重置内容。

相反,请将此添加到您的functions.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');

答案 1 :(得分:0)

由于登录和忘记密码屏幕不依赖于主题,因此您的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

答案 2 :(得分:0)

login_headlogin_enqueue_scriptscalled one after another,因此您使用哪一个并不重要...

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

我添加了一个解决方案,因为这不是您刚刚放入主题functions.php的代码类型。即使我们交换主题,我们也希望保持代码运行。所以functionality plugin很方便:

<?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:What is the advantage of using Heredoc in PHP ?