如何在 WordPress 中重定向用户
已发表: 2018-08-08重定向是网站、插件和主题的标准部分。 有些就在眼前发生,而您甚至可能不知道背后发生了什么。
尽管重定向通常留给开发人员,但我们将向您展示几个技巧,让您可以自行完成该任务。
成功登录后如何重定向特定用户角色
在本文的这一部分中,我们将向您展示一个代码,您可以轻松修改和控制成功登录WordPress 支持的网站后特定用户的登陆位置。
默认情况下,WordPress 会将每个用户带到仪表板,这对你们中的一些人来说可能是个问题。 也许您希望将您的管理员和作者留在后端,而您希望将其他用户直接引导到您的主页,或者可能引导到您专门为他们创建的另一个前端页面。
要根据用户的角色重定向用户,请执行以下步骤:
- 打开functions.php文件
- 复制并粘贴以下代码:
函数 my_login_redirect( $url, $request, $user ){ if( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) { if( $user->has_cap( 'administrator') 或 $user->has_cap('作者')){ $url = admin_url(); } 别的 { $url = home_url('/custom-page /'); } } 返回 $url; } add_filter('登录重定向', 'my_login_redirect', 10, 3 );
- 保存更改
上面显示的代码会将管理员留在他们需要的地方 - 管理面板,而所有其他用户将被带到自定义页面。
您可以轻松地通过改变于第4 $ url变量中和第6行更改URL,并因此导致你的用户,你已经为他们创建的任何职位/页。
如果您想控制用户角色,您可以在代码的第三行轻松完成。 在上面给出的示例中,我们在管理面板上留下了管理员和作者。 如果您只需要管理员,只需从图片中删除作者:
if( $user->has_cap( '管理员' ) ) {
除了删除作者之外,您还可以添加其他角色; 由您决定谁将最终出现在哪个页面上。
就是这样。 使用此代码,您不需要任何插件来控制用户登录后的重定向。如果您仍然不想更改代码,请参阅如何在使用插件登录后重定向用户。
使用 Peter 的登录重定向插件登录后重定向用户
虽然您可以通过放置我们之前向您展示的一些代码在登录后快速重定向用户,但对于那些不喜欢编码的人来说,这不是最佳选择。 此外,如果您想更好地控制重定向,则必须知道如何修改代码。
我们将向您展示一个插件,而不是修改代码,它会为您完成肮脏的工作。 你所要做的就是决定哪个用户去哪里,点击几个复选框,然后粘贴 URL,而插件会处理其余的事情。

尽管有无数的 WordPress 插件旨在做同样的事情,但我们在本文的这一部分选择了 Peter 的登录重定向。
此插件可让您根据姓名、用户角色甚至用户能力选择用户,并只需粘贴用户登录后将重定向到的 URL。如果您想重定向该用户,甚至可以选择另一个页面或注销后的用户组。 此外,您可以选择一个单独的 URL,该 URL 将用作任何用户在注册时的目标页面。
如果这对您来说还不够,并且您想进一步改进您的重定向,Peter 的登录重定向可以满足您的需求。 例如,如果您为每个用户创建了特定页面,则可以直接从插件生成 URL。 在这种情况下,插件中描述的简单短代码足以输入用户的用户名,从而将特定用户引导至他/她的特定页面。
最后,有几个插件选项可以帮助您进一步控制插件的行为。 您可以将插件设置为仅使用一种类型的 URL,例如,仅允许使用内部链接、控制 POST 和 GET 重定向、根据需要使用外部重定向文件以及通过选择权限级别来选择可以控制此插件的人.
如果您需要管理登录、注销和注册重定向,Peter 的登录重定向几乎将为您提供所需的一切。 哦,是的,我们有没有提到该插件是免费的? 您可以从 WordPress 插件存储库获取它并在几秒钟内安装它,之后您要做的就是导航到Settings -> Login/Logout Redirects 。
如何在注销后重定向 WordPress 用户
默认情况下,当用户从 WordPress 网站注销时,他或她将被带回登录页面。 将显示一条消息,通知用户注销成功,其余的导航留给用户。
但是,如果您希望您的用户自动重定向到您的主页、您希望他们看到的讨论页面或任何其他感兴趣的页面,该怎么办? 也许您想创建一个不同的注销页面,其中将包含特殊的小部件或将您的用户引导到其他地方? 如果是这样,您将需要这个小代码来完成所有事情。
在接下来的几行中,我们将向您展示如何轻松地将用户重定向到您想要的任何 URL。 如果您不想使用重定向代码,我们将向您展示一个简单的插件,它将为您完成所有这些。 但在此之前,让我们将用户重定向到主页:
- 打开functions.php文件
- 复制并粘贴以下代码:
add_action('wp_logout','auto_redirect_after_logout');
函数 auto_redirect_after_logout(){
wp_redirect(home_url());
出口();
}
- 保存更改
- 登出并享受您美丽的主页
就这么简单。 您可以从代码中猜到,您可以通过更改第三行将用户重定向到任何其他 URL 。 因此,如果您想将用户引导至您自己网站的另一个页面或任何外部页面,您的代码应如下所示:
add_action('wp_logout','auto_redirect_after_logout');
函数 auto_redirect_after_logout(){
wp_redirect('http://www.firstsiteguide.com');
出口();
}
如果您想使用 wp_redirect 函数做更多事情,可以在 WordPress Codex 页面上了解更多信息。
登录和注销重定向
价格:免费

这个免费插件相对简单,可以完美地完成它的工作。 登录和注销重定向将在设置页面上创建一个附加段,而不是处理代码。 安装并激活后,您必须导航到设置 -> 常规并一直滚动到页面末尾。 在这里,您将找到用于登录和注销重定向的单独输入框。 输入所需的 URL,保存更改,您就完成了!
如果您的 WordPress 网站需要更多重定向选项,我们建议您检查 5sec Redirect 插件,它可以帮助您重定向任何帖子、页面、类别、标签或自定义 URL。 它将允许您隐藏您的网址,这对于隐藏会员链接或访问者的任何网址来说非常有用。 该插件还会向您显示有关每个重定向链接的统计信息,以便您了解站点上发生的情况。
发表评论后重定向用户
当您开始发表文章时,您当然希望人们对它们发表评论。 在指南的这一部分中,我们将向您展示如何在提交评论后重定向用户。
在特定情况下,此功能可能会派上用场。 例如,您可能想要为您正在组织的赠品创建一个自定义的“谢谢”页面。 因此,当访问者通过发表评论参与赠品时,您可以轻松地将他们重定向到“谢谢”页面,您可以在其中提供有关奖品的其他信息。
实际上,在发表评论后重定向用户可能有很多不同的原因,所以不用多说,以下是您需要做的事情来自动化该过程。
提交评论后重定向用户:
- 打开functions.php文件
- 将此代码复制并粘贴到文件中:
函数redirect_after_comment(){ wp_redirect('/谢谢你/'); 出口(); } add_filter('comment_post_redirect', 'redirect_after_comment');
- 更改页面的名称于第2行
- 保存更改
就是这样。 您现在可以继续测试该功能。 打开您的任何帖子并发表评论。 如果您已正确完成所有操作,您应该会访问 http:/www.yoursite.com/thank-you 页面或代码第二行中指定的页面。


不要忘记感谢人们的评论,但也不要忘记您希望访问者留在网站上并继续浏览。 一个好主意可能是添加您最近或最受欢迎的帖子的列表,或者甚至更好地列出评论者可能感兴趣的所有相关帖子。 如果您有邮件列表,这是提供订阅的好地方。
虽然此功能提供了一种在用户发表评论后重定向用户的简单快捷的方法,但您可能对一个插件感兴趣,该插件将为您提供一些附加功能。
如果只找到一个结果,则在搜索后重定向用户
如果您要处理大量文章,则必须具备搜索功能。 如果您每天都在写作,请想象一下分散在不同类别中的文章数量。 如果你每天只发表三篇短文,第一年之后你的数据库中就会有上千种不同的标题。 现在想象一下你第一次来到这个网站,同时寻找特定的东西——你会想要搜索它。
默认情况下,WordPress 将搜索帖子标题、标签,当然还有内容。 因此,如果搜索一个词或一个特定的短语,它可能会找到几十个包含该查询的帖子和页面。 但是如果只有一个搜索结果呢?
如果有人正在搜索一个非常具体的短语或整个句子,则可能只有少数或可能只有一个结果。 如果只找到一个结果,则无需将用户重定向到搜索结果页面。 相反,您为什么不将该用户直接带到结果中找到的帖子/页面?
让我们看看如何做到这一点:
- 打开functions.php
- 复制此代码并将其粘贴到文件末尾:
add_action('template_redirect', 'redirect_search_result); 函数redirect_search_result() { 如果(is_search()){ 全局 $wp_query; 如果 ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); 出口; } } }
- 保存更改
您已为 WordPress 准备好新功能。 保存更改后,每次用户搜索只会返回一个结果的内容时,该用户将被直接重定向到帖子/页面。
即使看起来没什么,我们相信您的访问者会喜欢您点击按钮保存他们。 在此处保存一次点击并在那里保存一次点击会带来更好的用户体验,这可能是您希望在您的网站上获得的东西,不是吗?
当在一个类别中只找到一个帖子时重定向用户
您可以将该用户直接重定向到帖子/页面,而不是打开仅包含一个结果的类别或标签页面。 与我们的大多数代码片段一样,只需复制和粘贴代码就足够了:
如果类别或标签中只有一个帖子,则重定向用户:
- 打开functions.php文件
- 复制并粘贴以下代码:
函数redirect_to_post(){
全局 $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_redirect( $post_url );
}
} add_action('template_redirect', 'redirect_to_post');
- 保存更改
完成代码并保存更改后,您可以通过打开仅包含一个帖子/页面的类别或标签页面来测试该功能。 您将被直接重定向到该帖子,而不是打开仅显示该帖子/页面的页面。 很棒,不是吗?
由于某些用户可能对此感到困惑,因此最好包含一条自定义消息,告诉用户只找到一个结果并且发生了重定向。 如果你想这样做,你可以通过插入一个简单的“echo”语句将消息留在用户被重定向到的帖子/页面的顶部。 在这种情况下,您的代码将如下所示:
函数redirect_to_post(){ 全局 $wp_query; if( is_archive() && $wp_query->post_count == 1 ){ the_post(); $post_url = get_permalink(); wp_redirect( $post_url ); } echo "由于只找到了一个结果, 您已被重定向到此帖子/页面!"; } add_action('template_redirect', 'redirect_to_post');
既然已经实现了一条消息,您就完成了,您不必处理那些只包含一个帖子/页面的类别和标签。 但不要让此功能成为不在该类别中撰写新文章的借口。
将用户重定向到 WordPress 中的随机页面
这可能不是每个 WordPress 网站的标准功能,但肯定可以成为您网站上某个地方的有趣工具。 如果你写了很多或者可能有很多画廊,你最终可能会拥有成千上万普通用户看不到的页面。 那么为什么不通过将用户重定向到随机帖子来让事情变得更有趣呢?
好的,当然,您不会在用户不知情的情况下将用户重定向到随机帖子,也不会在主页上这样做。 但是您可以创建一个简单的按钮或链接,用户可以点击该按钮或链接,然后他将被带到您网站的另一个页面。 也许这是一个画廊。 也许你多年前写过一篇很酷的社论。 谁知道。 它可以很有趣。
让我们开始吧:
- 首先,您需要准备重定向链接。 打开你的functions.php文件
- 复制并粘贴以下代码:
add_action('init','random_add_rewrite');
函数 random_add_rewrite() {
全球 $wp;
$wp->add_query_var('random');
add_rewrite_rule('随机/?
- 保存更改
- 转到 www.yourdomain.com/?random=1
, 'index.php?random=1', 'top'); } add_action('template_redirect','random_template'); function random_template() { if (get_query_var('random') == 1) { $posts = get_posts('post_type=post&orderby=rand&numberposts=1'); foreach($posts as $post) { $link = get_permalink($post); } wp_redirect($link,307); 出口; } }
在此之后,您就可以创建链接/按钮了。 您所要做的就是链接到http://www.yourdomain.com/?random=1并且每次用户打开页面时,他都会被重定向到一个随机页面。 享受您的新功能。
将您重定向到结论
迟早,您会希望在特定情况下重定向特定用户。 无论是否有充分的理由并且您试图让访问者购买某些东西,或者您只是想让登录过程更舒适,本教程都将帮助您管理重定向。
如果您对编码足够熟悉,您将能够改进这一点并在不同情况下重定向用户。 如果没有,我们希望这些示例足以满足您的需求。