用脚本修改可湿性粉剂登录页面?

时间:2015-06-02 作者:jchwebdev

这可能是个“noob”问题,但。。。

似乎无法通过PHP修改WP登录页面(例如,添加get\\u header()代码或新div)以匹配站点主题。当然,也就是说,没有对核心进行黑客攻击。(如果有办法,请告诉我!)是的,我知道你可以创建一个登录模板,但你永远无法摆脱WP登录,因为它似乎对各种核心登录/注销功能都是必要的。(同样,如果WP4改变了这一点,请让我知道!)

因此,我开始简单地通过jQuery()添加我想要的div。没有什么奢侈的。。。只有一个“页眉”和“页脚”来匹配站点主题。

我的问题是:有什么理由不这样做吗?例如,安全问题或其他我没有考虑的问题?我这样问是因为这是WP中唯一一个不能使用“模板”页面的地方,这对我来说很奇怪,这一定有很好的原因。

TIA公司

2 个回复
SO网友:Marek

嗯,您可以自定义登录/注销操作,而无需访问者查看WP admin环境。所以我不是在回答“用JS修改WP登录页面”的问题,而是告诉大家有更简单的解决方案

您可以将此表单添加到模板的任何位置,瞧,登录表单!

<form name="loginform" id="loginform" action="<?php echo site_url(\'/wp-login.php\') ?>" method="post">
<table class="logtable">
<tr>
    <td class="first"><label for="user_login"><?php _e(\'Username:\',\'your-theme\') ?></label></td>
    <td class="second"><input type="text" name="log" id="user_login" class="input" value="" size="20"></td>
</tr>
<tr>
    <td class="first"><label for="user_pass"><?php _e(\'Password:\',\'your-theme\') ?></label></td>
    <td class="second"><input type="password" name="pwd" id="user_pass" class="input" value="" size="20"></td>
</tr>
<tr>
    <td class="remember" colspan="2">
        <label><input name="rememberme" type="checkbox" id="rememberme" value="forever"> <?php _e(\'Remember me\',\'your-theme\') ?></label>
    </td>
</tr>
<tr>
    <td class="submit" colspan="2">
        <input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php _e(\'Log in\',\'your-theme\') ?>">
        <input type="hidden" name="redirect_to" value="<?php echo home_url() ?>">
    </td>
</tr>
</table>
</form>
您希望用户登录,但不希望他看到管理环境。所以你可以完全从管理员那里“屏蔽”他(并将他重定向到主页)。

function blockDashboard() {
    $file = basename($_SERVER[\'PHP_SELF\']);
    if (is_user_logged_in() && is_admin() && !current_user_can(\'administrator\') && $file != \'admin-ajax.php\'){
        wp_redirect( home_url() );
        exit();
    }
}
add_action(\'init\', \'blockDashboard\' );
和注销链接?容易的

<p class="logout">
<?php wp_loginout( home_url() ) ?>
</p>

SO网友:tpaksu

我用的是这样的东西:

<?php
add_action(\'login_header\', function () {
    wp_dequeue_style(\'login\');
    wp_deregister_style(\'login\');
    ?>
    <!doctype html>
    <html <?php language_attributes();?>>
        <?php get_template_part(\'templates/head\');?>
        <body <?php body_class();?>>
        <!--[if IE]>
            <div class="alert alert-warning">
            <?php _e(\'You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.\', \'sage\');?>
            </div>
        <![endif]-->
        <div class="container-fluid">
            <div class="row">
            <?php
    do_action(\'get_header\');
    get_template_part(\'templates/header\');
    ?>
            </div>
        </div>
        <div class="wrap container w-75" role="document">
            <div class="content row">
                <main class="main">
        <?php
});

add_action(\'login_footer\', function () {
    ?>
        </main><!-- /.main -->
      </div><!-- /.content -->
    </div><!-- /.wrap -->
    <script type="text/javascript">
        jQuery("body").addClass("custom-background");
        //jQuery("#login-css").remove();
    </script>
    <?php
    do_action(\'get_footer\');
    get_template_part(\'templates/footer\');
    wp_footer();
    ?>
  </body>
    </html><?php
});
您可以删除登录名。取消脚本注释的css文件

jQuery("#login-css").remove();
但在此之后,您需要重新设置登录框的样式。

结束

相关推荐