Moke|墨客

 找回密码
 立即注册
搜索
查看: 7837|回复: 0

WordPress登录后跳转到指定页面

[复制链接]

3636

主题

0

回帖

3681

积分

超级版主

Rank: 8Rank: 8

积分
3681
发表于 2016-5-12 18:19:31 | 显示全部楼层 |阅读模式






                前面在写模版的时候,有朋友要求网站登录后要跳转的到指定的页面。这个从前还真没遇到过。于是就用万能的搜索(很少百度)找了下,方法基本上就是一个,代码如下:
<?php
    // Fields for redirect function custom_login_fields() {
?>
<p><label><strong>Choose your location: </strong>
<select name=&quot;login_location&quot;>
<option value=&quot;&quot;>Select &hellip;</option>
<option value=&quot;<?php bloginfo('url'); ?>#banking&quot;>Banking</option>
<option value=&quot;<?php  bloginfo('url'); ?>#insurance&quot;>Insurance</option>
<option value=&quot;<?php echo get_permalink(2); ?>&quot;>Securities</option>
</select> </label>
</p><br/>
<?php
    } // Redirect function
function location_redirect() {
$location = $_POST['login_location'];
wp_safe_redirect($location);
exit(); } // Add fields to the login form
add_action('login_form','custom_login_fields'); // Make sure the redirect happens only if your fields are submitted
if  ( (isset($_GET['action']) && $_GET['action'] != 'logout') ||  (isset($_POST['login_location']) &&  !empty($_POST['login_location'])) )
add_filter('login_redirect', 'location_redirect', 10, 3);
?>
但我试了没成功,不知道原因出在何处。于是又找了下登录后返回登录前的页面,有如下方法:
方法一:
wordpress的安装文件中有一个名为&ldquo;wp_login_url()&rdquo;的函数,这个函数用来实现登录后页面跳转到用户指定的页面,它能够接收一个参数,这个输入参数的值是可以被访问到的url地址。
通过使用&ldquo;get_permalink()&rdquo;作为输入参数(get_permalink()函数用来获取当前页面地址),便可实现登录后页面自动跳转到登录前页面。
代码如下:
<a title=&quot;Login&quot; href=&quot;<?php echo wp_login_url(get_permalink()); ?>&quot;>Login to view</a>
只要把上面的代码复制,放在用户登录后需要返回的页面(即登录前的页面),这样就可以了。
方法二:
function back_curPageURL() {
    $pageURL = 'http';
    if ( isset( $_SERVER[&quot;HTTPS&quot;] ) AND $_SERVER[&quot;HTTPS&quot;] == &quot;on&quot; )
        $pageURL .= &quot;s&quot;;
    $pageURL .= &quot;://&quot;;
    if ( isset( $_SERVER[&quot;SERVER_PORT&quot;] ) AND $_SERVER[&quot;SERVER_PORT&quot;] != &quot;80&quot; )
        $pageURL .= $_SERVER[&quot;SERVER_NAME&quot;].&quot;:&quot;.$_SERVER[&quot;SERVER_PORT&quot;].$_SERVER[&quot;REQUEST_URI&quot;];
    else
        $pageURL .= $_SERVER[&quot;SERVER_NAME&quot;].$_SERVER[&quot;REQUEST_URI&quot;];
    return $pageURL;
}
add_filter('login_redirect', ' back_curPageURL ');
把上述代码加到function.php文件中。
我看这个方法和前面一个差不多。
于是我改了下,便成了登录后跳转到指定页面的方法,这也是一朋友在论坛中回复我的内容,代码如下:
add_filter('login_redirect', 'new_login_redirect');
function new_login_redirect()
{
return '登录成功后要跳转的URL地址';
}
你们还有更好的方法嘛?介绍来分享下吧。
固定链接:http://www.wmtimes.cn/post/201111281117.html| 完美时光
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 

 

快速回复 返回顶部 返回列表