WordPress技巧: 当前页面弹出登陆窗口进行登陆

Ludou
文章目录

     你可能会在很多网站看到一些很炫的登陆窗口,点击"登陆"按钮后,会在当前页面弹出一个登陆窗口,填写登陆信息,登陆成功后,就会自动返回原来的页面。而我们使用的WordPress博客系统,在默认情况下只能打开一个新的页面进行登陆,对一些人来说不是很方便。今天我将教你,如何让WordPress支持在当前页面打开登陆窗口进行登陆。先下载我们必须的文件:

下载此文件

     下载完毕,解压将得到一个文件夹lightbox ,将其复制到当前你所以使用的主题目录下。接着用文本编辑器打开 lightbox 目录下的 login.php,将 http://localhost/wp 改成你的WordPress 安装地址。WordPress博客安装地址可以在这里找到: WordPress后台 - 设置 - 常规,注意不要在地址后面添加 /

1、对你的主题做一些更改

     用文本编辑器打开你的主题目录中footer.php,将 </body> 替换成:

1
2
3
4
<link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/lightbox/lightbox.css" type="text/css" />
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/lightbox/prototype.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/lightbox/lightbox.js"></script>
</body>

     用文本编辑器打开主题目录下的functions.php(没有就新建一个),将最后的 ?> 改成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 说明:获取当前网页的完整URL
function curPageURL()
{
    $pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on")
    {
        $pageURL .= "s";
    }
    $pageURL .= "://";

    if ($_SERVER["SERVER_PORT"] != "80")
    {
        $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
    }
    else
    {
        $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
    }
    return $pageURL;
}
?>

2、设置登录链接

(1) 在文章中添加登录地址
     如果你在后台编写文章的时候,想在文章里面添加登录链接,可以切换到HTML模式,在合适的地方添加登录链接即可:

1
<a title="Log in" class="lbOn" href="http://这里填你当前使用的主题路径/lightbox/login.php?redirect=http://这里填登录成功后返回的页面地址">登录</a>

     上面的当前使用的主题路径,类似 http://www.ludou.org/wp-content/themes/default ,也就是你当前使用的主题的路径;登录成功后返回的页面地址,为你想让用户登录成功后台返回的页面地址,如果你想返回当前页面就填当前页面的地址。如:

1
<a title="Log in" class="lbOn" href="http://www.ludou.org/wp-content/themes/default/lightbox/login.php?redirect=http://www.ludou.org">登录</a>

     上面的东西看起来比较繁琐,那是因为你是在文章中插入链接,所以不能使用PHP代码帮你填写链接,只能用静态的HTML。下面的是直接更改你的主题,可能比较方便一些。

(2) 在你的主题文件中添加登录链接
     如果你想在主题文件sidebar.php、index.php、single.php等中添加登录链接,可以在合适位置添加以下代码:

1
2
3
4
5
6
<?php if ( !$user_ID )  { ?>
<a href="<?php echo get_option('siteurl'); ?>/wp-content/themes/<?php echo get_option('template'); ?>/lightbox/login.php?redirect=<?php echo curPageURL(); ?>" class="lbOn" title="Log in">登录</a>
<?php } else { ?>
<a href="http://这里填写退出登录链接" title="登出">登出</a><br />
<a href="http://这里填写后台链接" title="管理">管理</a>
<?php } ?>

效果演示:

演示

本文版权归露兜博客所有,转载引用请完整注明以下信息:
本文作者:Ludou
本文标题:WordPress技巧: 当前页面弹出登陆窗口进行登陆
本文地址:http://www.ludou.org/wordpress-create-a-login-form-overlay.html

露兜博客博主,男生,业余Web程序员,儒家思想受益者。文采不佳,不喜欢聚光灯,不喜欢吹牛,不喜欢无序的做事方式。闲时喜欢写些代码自娱自乐,并在博客中分享一些个人技术经验。

标签:

42 条评论

我来说两句
  1. wwanghee

    请问你这些知识是如何学会的呢?

  2. 凡尘飞扬

    不错,下午整合到主题里试试

  3. 凡尘飞扬

    不错,下午整合到主题里试试,应该不错

  4. 我是流氓

    顶下这个插件 但除非你博客流量很大 否则别人只会绕道

    • Ludou

      强调一点,这不是插件!

      我不清楚这是怎样的一种逻辑?

      添加一个登陆链接,跟博客流量有什么关系?

      跟别人只会绕道有什么关系?

  5. 竹纤维加盟

    这是技术活,小国弄不了

  6. 老衲

    感觉用不上这个…

  7. haoran

    测试用的博客里用不可以 正式用的博客却可以。。。

  8. Founder

    我用上了你这个效果,不过有个问题,主页登录之后就回第一篇日志,不知道是怎么回事

  9. kedakyj

    为什么按你的方法做,能在当前页面弹出登陆窗口,但是登陆后还是留在当前页面而不能转到后台?

    • Ludou

      如果你是用(1) 在文章中添加登录地址,请将:
      http://这里填登录成功后返回的页面地址

      改成你的后台网址,如http://example.com/wp-admin

      如果你是用(2)在你的主题文件中添加登录链接,请将:
      <?php echo curPageURL(); ?>

      改成你的后台网址。

      另外,如果你需要登陆成功后调到后台,你直接使用WordPress默认的登陆链接就得了,本文的内容就不用看了。

  10. xtgocn

    按照你说的弄好以后 登陆返回 跟原来一样 还需要登陆??

    • Ludou

      不知道你有没有仔细看本文的内容?本文第一段“你可能会在很多网站看到一些很炫的登陆窗口,点击“登陆”按钮后,会在当前页面弹出一个登陆窗口,填写登陆信息,登陆成功后,就会自动返回原来的页面。”

      如果不想返回原来的页面,请看楼下的回复!

  11. 释义

    很好很强大,在这里学到了很多wordpress知识,谢谢,后生可畏

  12. John

    很强。可是使用后,为什么页面的样式、菜单等格式上都会有很多变化?且弹出的登录窗口很大,很宽。是css的设置缘故?

  13. 大羊

    请问老师跳出来的框框完全白色看不到字是怎么回事?

  14. 闫涛

    但是如果用户名和密码什么都不输,直接点登录按钮的话,还是进入注册页面了,后台就暴露了。

    • Ludou

      即使你不告诉别人你的后台,别人照样能找到你的后台地址,因为你用的是WordPress,无非就是http://xxx.xxx/wp-admin或http://xxx.xxx/xx/wp-admin等等,查看你的网页源代码就知道。如果你担心别人在后台猜测你的用户密码,可以安装插件Login Lockdown

  15. 大懒猪

    请问能不能把注册页面也做成这个效果的?

  16. 倡萌

    倡萌测试发现:如果你已经登录,在你添加【登录】字样的地方是看不到任何文字的,这也就是说,登录以后没有显示【已登录】这样的文字提示,更没有【退出】或者【管理】的按钮,这是一个不小的缺陷,不知老大是否可以增加这些

发表评论

因博主长期在外地出差,您的留言可能暂时不会得到回复。

订阅评论