创建wordpress重定向的几种方法

目前wordpress已经为我们提供了几种用户登陆后重定向的方法,所以在这篇文章中我将向大家介绍如何创建wordpress重定向的实用技巧,wordpress重定向

这些方法可以让你设置用户登陆后重定向到你指定的页面,其中包括内部页面,外部页面或者当前页面。

wp_redirect

wp_redirect 这个函数的功能是将所用用户重定向到一个绝对的链接,绝对链接是一个完整的链接路径看起来像这样。

  • http://www.dglives.com/book/
  • http://www.dglives.com/wp-content/blog-images/redirecting-users.jpg
  • ftp://example.com/transfer/

为了使用用户重定向这个功能,你可以将以下php代码粘贴到你的主题中:

<?php wp_redirect('http://example.com/'); exit; ?>

wp_redirect 拥有两个参数可以调用

  • $location = 用户将要被重定向指定的路径即绝对路径
  • $status = 状态码 例如:301,302,默认状态码为302
<?php wp_redirect(home_url()); exit;  // 重定向到首页 ?>
 
<?php  wp_redirect(get_permalink()); exit; // 重定向到当前页面 ?>

这是一个301重定向的例子

<?php wp_redirect('http://example.com/', 301); exit; ?>

以上代码的功能是将用户重定向到指定网址,并且以301的方式进行转向(页面永久性转移),默认的302重定向(页面暂时性转移)将会被301替代。

auth_redirect 接下来,我们来认识一下 auth_redirect,它的功能是允许用户进入指定的页面前提是该用户必须先进行登陆,例如你有一个下载文件的页面,用户登陆后才会显示该页面,而普通用户却无法看到该下载页面,要实现该功能我们可以将以下代码加入到相应的下载页面进行测试。

<?php auth_redirect(); ?>

这种十分有用的功能能够检测当前用户是否进行了登陆,所以在默认情况下未登陆的用户将会被重定向到登陆页面才能够下载文件。

wp_logout_url

这个 wp_logout_url 函数的功能是当用户登出时返回网站地址的绝对链接,当然该函数允许将用户重定向到任何固定链接地址,代码如下:

<?php echo wp_logout_url($redirect); ?>

$redirect 参数变量可以接受重定向地址,这里是一些简单的例子:

<!-- 用户登出后重定向至网站首页 -->
<a href="<?php echo wp_logout_url(home_url()); ?>">Logout</a>
 
<!-- 用户登出后重定向至当前页面-->
<a href="<?php echo wp_logout_url(get_permalink()); ?>">Logout</a>
 
<!-- 用户登出后重定向至指定页面 -->
<a href="<?php echo wp_logout_url('http://example.com/'); ?>">Logout</a>

is_user_logged_in

is_user_logged_in 这个函数并不会为我们提供重定向功能,但是它能够检测用户是否已经登录,以下是该函数的代码示例:

<?php if (is_user_logged_in()) { echo "用户已登陆"; } else { echo "用户未登录" } ?>

is_user_logged_in 函数返回的值有两个分别是 true 或者 false,这取决于用户的当前状态,所以如果你想显示一些特殊的内容给已登陆的用户,你可以这么写:

<?php if (is_user_logged_in()) { ?>
 
欢迎,注册用户!
 
<?php } else { // 您还为注册 ?>
 
欢迎, 普通用户!
 
<?php } ?>

当然如果你愿意你还可以添加一些特殊的条件来从而显示相应的信息:

<?php if (is_user_logged_in()) { 
 
    if (is_page()) { echo "用户登录后可以访问特殊的页面"; } 
 
        elseif (is_search()) {  echo "用户登录后可以进行搜索"; }
 
        else {  echo "用户登录后可以执行一些其它的操作";    } 
} 
 
        else { // 如果用户未登录 
 
    if (is_page())  { echo "用户可以访问普通的页面";   }
  
        elseif (is_search())  { echo "用户可以进行普通的搜索"; }
 
        else { echo "用户可以执行普通的操作"; } 
}
 ?>

以上的例子展示了is_user_logged_in的灵活性,以及如何附加条件对用户进行一些特殊的控制。

关于使用auth_redirect 和 is_user_logged_in的一些问题 某些情况下会出现用户已经登录了但是仍然无法进行相应的重定向的问题,问题出现在 auth_redirect 从而无法正确识别用户登录的状态,登陆后仍然返回到login.php。 好在这个问题已经得到解决了,将以下代码粘贴到主题的顶部进行相应的判断

<?php if (!is_user_logged_in()) { auth_redirect(); } ?>

这个技巧成功的解决了无法进行相应的重定向的问题,大体意思就是如果用户没有登录的情况下 auth_redirect 就会执行重定向。

原文地址:创建wordpress重定向的几种方法

原文地址:https://www.cnblogs.com/dglives/p/3177502.html