重定向是网站、插件和主题的一个标准部分。有些就发生在眼前,而你可能甚至不知道后面发生了什么。虽然重定向通常是留给开发人员的,但我们将向你展示几个技巧,让你自己完成这项任务。bluehost美国站群服务器商如何在WordPress中重定向用户
如何在成功登录后重定向特定的用户角色
在文章的这一部分,我们将向你展示一段代码,你可以很容易地修改并控制某个用户在成功登录到你的WordPress网站后的位置。
默认情况下,WordPress会把每个用户带到仪表板,这对你们中的一些人来说可能是个问题。也许你想把你的管理员和作者留在后台,而你想把你的其他用户直接带到你的主页上,或者你为他们专门创建的另一个前台页面上。
要根据用户的角色重定向,请遵循以下步骤:
- 打开 functions.php 文件
- 复制并粘贴以下代码:
function my_login_redirect( $url, $request,
$user ){ if( $user && is_object( $user ) &&
is_a( $user, ‘WP_User’ ) ) {
if( $user->has_cap( ‘administrator’) or
$user->has_cap( ‘author’)) {
$url = admin_url();
} else {
$url = home_url(‘/custom-page /’);
}
}
return $url;
}
add_filter(‘login_redirect’,
‘my_login_redirect’, 10, 3 );
- 保存修改
上面的代码将把管理员留在他们需要的地方,那就是管理员面板,而所有其他用户将被带到一个自定义页面。推荐阅读:《如何修改WordPress的管理用户名》
你可以通过改变第4行和第6行的$url变量来轻松改变URL,从而将你的用户引导到你为他们创建的任何帖子或页面。
如果你想控制用户角色,你可以在代码的第三行轻松做到。在上面的例子中,我们把管理员和作者留在管理面板上。如果你只想让管理员在那里,只需将作者从图片中删除。
if( $user->has_cap( ‘administrator’ ) ) {
与其删除作者,你也可以添加其他角色;由你来决定谁会出现在哪个页面。
就这样了。有了这个代码,你不需要任何插件来控制用户登录后的重定向。如果你仍然不喜欢修改代码,请看如何用插件在登录后重定向用户。
用Peter的登录重定向插件在登录后重定向用户
虽然你可以通过放置我们之前展示的一些代码来快速重定向登录后的用户,但对于那些不喜欢编码的人来说,这并不是最好的选择。另外,如果你想获得对重定向的更多控制,你就必须知道如何修改代码。
与其修改代码,我们还不如向你展示一个插件,它将为你做这些肮脏的工作。你所要做的就是决定哪个用户去哪里,点击几个复选框,然后粘贴URL,而该插件将处理其余的事情。
尽管有许多WordPress插件被设计成做同样的事情,但我们在文章的这一部分选择了Peter的登录重定向。
这个插件将让你根据用户的名字、用户角色、甚至用户能力来选择用户,并简单地粘贴用户登录后将被重定向到的URL。如果你想在该用户或用户组退出后重定向,甚至可以选择另一个页面。此外,你可以选择一个单独的URL,作为任何用户注册时的目标页面。
如果这些对你来说还不够,你想进一步改善你的重定向,Peter的 “登录重定向 “为你提供了保障。例如,如果你已经为每个用户创建了一个特定的页面,你可以直接从该插件生成URL。在这种情况下,插件中描述的一个简单的短码就足以输入用户的用户名,从而引导该特定用户到他或她的特定页面。
最后,还有一些插件选项,可以帮助你进一步控制插件的行为。你可以设置该插件只使用一种类型的URL,例如,只允许使用内部链接,控制POST和GET重定向,如果需要的话,使用外部重定向文件,并通过选择权限级别选择谁可以控制这个插件。
如果你需要管理登录、注销和注册重定向,Peter的登录重定向将让你几乎得到你需要的一切。哦,对了,我们有没有提到这个插件是免费的?你可以从WordPress的插件库中获得,并在几秒钟内安装,之后你所要做的就是导航到设置->登录/注销重定向。
如何在注销后重定向一个WordPress用户
默认情况下,当一个用户从WordPress网站注销时,他或她将被带回登录页面。将会显示一条信息,通知用户成功注销,其余的导航就留给用户了。
但是,如果你想让你的用户自动重定向到你的主页、你想让他们看到的讨论页面或任何其他感兴趣的页面呢?也许你想创建一个不同的注销页面,它将包含特殊的小工具或引导你的用户到其他地方?如果是这样,你将需要这个小代码来实现一切。
在接下来的几行中,我们将向你展示如何轻松地将用户重定向到你想要的任何URL。如果你不想使用代码进行重定向,我们将向你展示一个简单的插件,它将为你做这一切。但在这之前,让我们把用户重定向到主页上。
- 打开 functions.php 文件
- 复制并粘贴以下代码:
add_action(‘wp_logout’,’auto_redirect_after_logout’);
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
- 保存修改
- 退出并享受你的漂亮主页
就这么简单。正如你从代码中可以猜到的,你可以通过改变第三行将用户重定向到任何其他URL。因此,如果你想把你的用户引导到你自己网站的另一个页面或任何外部页面,你的代码应该是这样的。推荐阅读:《WordPress全站编辑(FSE):功能及其对用户和企业的影响》
如果你想用wp_redirect函数做得更多,你可以在WordPress Codex页面上了解更多。
登录和注销重定向
价格:免费
这个免费的插件比较简单,可以完美地完成它的工作。登录和注销重定向不需要处理代码,它将在设置页面上创建一个额外的部分。在你安装和激活之后,你必须导航到设置->常规,并一直滚动到页面的末端。在这里你会发现登录和注销重定向的单独输入框。输入所需的URL,保存更改,你就完成了!
在用户留下评论后重定向
当你开始发布文章时,你当然会希望人们对它们进行评论。在本指南的这一部分,我们将向你展示如何在提交评论后重定向用户。
这个功能在特定情况下可能会对你很有用。例如,你可能想为你组织的一个赠品创建一个自定义的 “感谢 “页面。因此,当访客通过留下评论参与赠品时,你可以很容易地将他们重定向到 “感谢 “页面,在那里你可以提供有关奖品的额外信息。
实际上,你可能有很多不同的理由在用户留下评论后重定向,所以不用多说,这里是你需要做的来使这个过程自动化的步骤:。
在提交评论后重定向用户。
- 打开 functions.php 文件
- 复制并粘贴这段代码到该文件中。
function redirect_after_comment(){
wp_redirect(‘/thank-you/’);
exit();
}
add_filter(‘comment_post_redirect’,
‘redirect_after_comment’);
- 在第二行改变页面的名称
- 保存修改
就这样了。你现在可以继续测试这个功能了。打开你的任何一个帖子并留下评论。如果你所做的一切都正确,你最终应该出现在http:/www.yoursite.com/thank-you 页面或你代码第二行所指定的页面上。
不要忘记感谢人们的评论,但也不要忘记,你希望你的访客留在网站上继续浏览。一个好主意可能是添加一个你最近或最受欢迎的帖子的列表,或者甚至更好的是列出所有可能对评论者感兴趣的相关帖子。如果你有一个邮件列表,这是一个提供订阅的好地方。
虽然这个功能提供了一个简单而快速的方法,在用户留下评论后重定向,但你可能对一个插件感兴趣,它将给你一些额外的功能。
如果只找到一个结果,在搜索后重定向用户
如果你要处理较多的文章,搜索功能是必须具备的。如果你每天都在写作,想象一下散落在不同类别的文章数量。如果你每天只发表三篇短文,第一年后你的数据库中就会有一千多个不同的标题。现在想象一下,你第一次来到这个网站,同时寻找一些特定的内容,你会想去进行搜索。
默认情况下,WordPress会通过文章标题、标签,当然还有内容进行搜索。所以,如果搜索一个词或一个特定的短语,它可能会找到几十个包含该查询的帖子和页面。但如果只有一个搜索结果呢?
如果有人在搜索一个非常具体的短语或整个句子,有可能只有几个或者只有一个结果。如果只找到一个结果,将用户重定向到搜索结果页面是非常不必要的。相反,你为什么不把用户直接带到结果中的帖子或页面呢?
让我们看看如何做到这一点:
- 打开 functions.php
- 复制这段代码并粘贴到文件的末尾。
add_action(‘template_redirect’,
‘redirect_search_result);
function redirect_search_result() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1 &&
$wp_query->max_num_pages == 1) {
wp_redirect( get_permalink(
$wp_query->posts[‘0’]->ID ) );
exit;
}
}
}
- 保存修改
你已经为你的WordPress的新功能做好了准备。在你保存了修改后,每次用户搜索某个内容时,如果只返回一个结果,该用户就会直接被重定向到该帖子或页面。
即使这看起来没什么,我们相信你的访客会喜欢你为他们节省了一个按钮的点击。省去点击这里和点击那里的时间会带来更好的用户体验,这可能是你在你的网站上想要的,不是吗?
当发现一个类别中只有一个帖子时,重新引导用户
与其打开一个只包含一个结果的分类或标签页面,你可以直接将用户重定向到该帖子/页面。与我们大多数的代码片段一样,只需复制和粘贴代码即可。
如果一个类别或一个标签中只有一个帖子,则重定向用户。
- 打开 functions.php 文件
- 复制并粘贴以下代码。
function redirect_to_post(){
global $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 “语句,在用户被重定向到的帖子/页面的顶部留下信息。在这种情况下,你的代码将看起来像这样。
function redirect_to_post(){
global $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_redirect( $post_url );
}
echo “Since there was only one result found,
you have been redirected to this post/page!”;
}
add_action(‘template_redirect’, ‘redirect_to_post’);
现在连消息都实现了,你就大功告成了,你就不必再去管那些只包含一个帖子/页面的分类和标签了。但不要让这个功能成为不在类别中写新文章的借口。
在WordPress中把用户重定向到一个随机的页面
这可能不是每个WordPress网站的标准功能,但肯定会是一个有趣的工具,可以在你的网站上的某个地方设置。如果你写了很多东西,或者有许多画廊,你可能最终会有成千上万的页面,而普通用户是看不到的。那么,你为什么不把用户重定向到一个随机的帖子,让事情变得更有趣呢?
当然,你不会在用户不知情的情况下将其重定向到一个随机的帖子,或在主页上这样做。但你可以创建一个简单的按钮或链接,用户可以点击,然后他将被带到你网站的另一个页面。也许是一个画廊。也许是你几年前写的一篇很酷的社论。谁知道呢。它可以是有趣的。
让我们开始吧。
- 首先,你需要准备你的重定向链接。打开你的 functions.php 文件
- 复制并粘贴以下代码。
- add_action(‘init’,’random_add_rewrite’);
function random_add_rewrite() {
global $wp;
$wp->add_query_var(‘random’);
add_rewrite_rule(‘random/? - 保存修改
- 转到www.yourdomain.com/?random=1
在这之后,你就可以创建你的链接/按钮了。你所要做的就是链接到http://www.yourdomain.com/?random=1,每次用户打开页面时,他将被重定向到一个随机的页面。享受你的新功能吧。
将你重定向到结论
迟早有一天,你会想在特定情况下重定向特定的用户。无论是否有一个很好的理由,你想让你的访客买东西,或者你只是想让登录过程更舒适,本教程将帮助你管理重定向。
如果你对编码足够自如,你将能够在此基础上进行改进,在不同情况下也能重定向用户。如果没有,我们希望这些例子刚好能满足你的需求。推荐相关阅读:《增加用户体验度的网站是什么样的呢?》