WordPress技巧: 当前页面弹出登陆窗口进行登陆
你可能会在很多网站看到一些很炫的登陆窗口,点击"登陆"按钮后,会在当前页面弹出一个登陆窗口,填写登陆信息,登陆成功后,就会自动返回原来的页面。而我们使用的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 |
上面的当前使用的主题路径,类似 http://www.ludou.org/wp-content/themes/default ,也就是你当前使用的主题的路径;登录成功后返回的页面地址,为你想让用户登录成功后台返回的页面地址,如果你想返回当前页面就填当前页面的地址。如:
1 |
上面的东西看起来比较繁琐,那是因为你是在文章中插入链接,所以不能使用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

请问你这些知识是如何学会的呢?
1、学过PHP
2、善用搜索引擎
3、基本的英文阅读能力
只能说你强大…
非常好
不错,下午整合到主题里试试
不错,下午整合到主题里试试,应该不错
顶下这个插件 但除非你博客流量很大 否则别人只会绕道
强调一点,这不是插件!
我不清楚这是怎样的一种逻辑?
添加一个登陆链接,跟博客流量有什么关系?
跟别人只会绕道有什么关系?
这是技术活,小国弄不了
嗯!有兴趣的话,可以学学
感觉用不上这个…
这个看不同人的需要吧,任何东西都不能做到适合每个人。
我不知道弄错了什么
<a href="http://s214.photobucket.com/albums/cc282/haoranhaoran/?action=view¤t=2010-05-29021053-1.png" target="_blank"><img src="http://i214.photobucket.com/albums/cc282/haoranhaoran/2010-05-29021053-1.png" border="0" alt="Photobucket"></a>
将你的文件用UTF-8编码另存为,覆盖原文件即可。不会用UTF-8编码另存的话,自己上网搜索怎么存。
另外,露兜博客不支持评论中的HTML代码
PHP文件已经是UTF-8 浏览器自动识别成ISO 8859-1了 改成UTF-8可以显示
我用的浏览器是火狐3.6 我博客也是UTF-8 但能正常识别编码
用IE打开却可以自动识别UTF-8 直接正常显示
请问我点击登录会打开新窗口
链接为:
http://博客/blog/wp-content/plugins/lightbox/login.php?redirect=http://博客/blog
按文章说的,在你主题中链接了相关的css和js
链接标签按格式写就可以在当前窗口弹出登录框了,
<a title="Log in" class="lbOn" href="http://博客/blog/wp-content/plugins/lightbox /login.php?redirect=http://博客/blog">Login</a>
可能有时候会打开新窗口,刷新一下就可以了
测试用的博客里用不可以 正式用的博客却可以。。。
那我就不知道了
我用上了你这个效果,不过有个问题,主页登录之后就回第一篇日志,不知道是怎么回事
文章已修改。你可以按照文章中说的,在主题目录下的functions.php添加相应的函数,然后将原先的代码改成:
<?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 } ?>
谢谢,我试试
谢谢你,解决了,这个真的很不错
不过注册界面要是也能像登录一样就更好了,贪心不足了,呵呵
谢谢分享
为什么按你的方法做,能在当前页面弹出登陆窗口,但是登陆后还是留在当前页面而不能转到后台?
如果你是用(1) 在文章中添加登录地址,请将:
http://这里填登录成功后返回的页面地址
改成你的后台网址,如http://example.com/wp-admin
如果你是用(2)在你的主题文件中添加登录链接,请将:
<?php echo curPageURL(); ?>
改成你的后台网址。
另外,如果你需要登陆成功后调到后台,你直接使用WordPress默认的登陆链接就得了,本文的内容就不用看了。
按照你说的弄好以后 登陆返回 跟原来一样 还需要登陆??
不知道你有没有仔细看本文的内容?本文第一段“你可能会在很多网站看到一些很炫的登陆窗口,点击“登陆”按钮后,会在当前页面弹出一个登陆窗口,填写登陆信息,登陆成功后,就会自动返回原来的页面。”
如果不想返回原来的页面,请看楼下的回复!
很好很强大,在这里学到了很多wordpress知识,谢谢,后生可畏
很强。可是使用后,为什么页面的样式、菜单等格式上都会有很多变化?且弹出的登录窗口很大,很宽。是css的设置缘故?
是的,可能css样式没被加载
请问老师跳出来的框框完全白色看不到字是怎么回事?
请按以上步骤从新操作一遍,不行可以换浏览器试试,可能是浏览器配置的问题。
但是如果用户名和密码什么都不输,直接点登录按钮的话,还是进入注册页面了,后台就暴露了。
即使你不告诉别人你的后台,别人照样能找到你的后台地址,因为你用的是WordPress,无非就是http://xxx.xxx/wp-admin或http://xxx.xxx/xx/wp-admin等等,查看你的网页源代码就知道。如果你担心别人在后台猜测你的用户密码,可以安装插件Login Lockdown
请问能不能把注册页面也做成这个效果的?
可以。你自己上网找找。
倡萌测试发现:如果你已经登录,在你添加【登录】字样的地方是看不到任何文字的,这也就是说,登录以后没有显示【已登录】这样的文字提示,更没有【退出】或者【管理】的按钮,这是一个不小的缺陷,不知老大是否可以增加这些
见文中(2) 在你的主题文件中添加登录链接
呵呵,原来是加个返回输出,呵呵,谢谢老大,待会有时间试试
PS:你的主题,如果在搜狗浏览器的高速模式提交评论,会跳转到404页面,无法正常评论,在IE模式下正常
管不了那么多啦,一个IE6就已经够受的了。
不过,我下载了一个搜狗的最新版,高速模式和兼容模式,评论都一切正常。