如何在 WordPress 中重定向用戶

已發表: 2018-08-08

重定向是網站、插件和主題的標準部分。 有些就在眼前發生,而您甚至可能不知道背後發生了什麼。

儘管重定向通常留給開發人員,但我們將向您展示幾個技巧,讓您可以自行完成該任務。

成功登錄後如何重定向特定用戶角色

在本文的這一部分中,我們將向您展示一個代碼,您可以輕鬆修改和控製成功登錄WordPress 支持的網站後特定用戶的登陸位置

默認情況下,WordPress 會將每個用戶帶到儀表板,這對你們中的一些人來說可能是個問題。 也許您希望將您的管理員和作者留在後端,而您希望將其他用戶直接引導到您的主頁,或者可能引導到您專門為他們創建的另一個前端頁面。

要根據用戶的角色重定向用戶,請執行以下步驟:

  1. 打開functions.php文件
  2. 複製並粘貼以下代碼:
 函數 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('login_redirect', 
'my_login_redirect', 10, 3 );
  1. 保存更改

上面顯示的代碼會將管理員留在他們需要的地方 - 管理面板,而所有其他用戶將被帶到自定義頁面。

您可以輕鬆地通過改變於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。 如果您不想使用重定向代碼,我們將向您展示一個簡單的插件,它將為您完成所有這些。 但在此之前,讓我們將用戶重定向到主頁:

  1. 打開functions.php文件
  2. 複製並粘貼以下代碼:
 add_action('wp_logout','auto_redirect_after_logout');
函數 auto_redirect_after_logout(){
wp_redirect(home_url());
出口();
}
  1. 保存更改
  2. 登出並享受您美麗的主頁

就這麼簡單。 您可以從代碼中猜到,您可以通過更改第三行將用戶重定向到任何其他 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。 它將允許您隱藏您的網址,這對於隱藏會員鏈接或訪問者的任何網址來說非常有用。 該插件還會向您顯示有關每個重定向鏈接的統計信息,以便您了解站點上發生的情況。

發表評論後重定向用戶

當您開始發表文章時,您當然希望人們對它們發表評論。 在指南的這一部分中,我們將向您展示如何在提交評論後重定向用戶。

在特定情況下,此功能可能會派上用場。 例如,您可能想要為您正在組織的贈品創建一個自定義的“謝謝”頁面。 因此,當訪問者通過發表評論參與贈品時,您可以輕鬆地將他們重定向到“謝謝”頁面,您可以在其中提供有關獎品的其他信息。

實際上,在發表評論後重定向用戶可能有很多不同的原因,所以不用多說,以下是您需要做的事情來自動化該過程。

提交評論後重定向用戶:

  1. 打開functions.php文件
  2. 將此代碼複製並粘貼到文件中:
 函數redirect_after_comment(){
wp_redirect('/謝謝你/');
出口();
}
add_filter('comment_post_redirect', 
'redirect_after_comment');
  1. 更改頁面的名稱於第2
  2. 保存更改

就是這樣。 您現在可以繼續測試該功能。 打開您的任何帖子並發表評論。 如果您已正確完成所有操作,您應該會訪問 http:/www.yoursite.com/thank-you 頁面或代碼第二行中指定的頁面。

感謝頁面

不要忘記感謝人們的評論,但也不要忘記您希望訪問者留在網站上並繼續瀏覽。 一個好主意可能是添加您最近或最受歡迎的帖子的列表,或者甚至更好地列出評論者可能感興趣的所有相關帖子。 如果您有郵件列表,這是提供訂閱的好地方。

雖然此功能提供了一種在用戶發表評論後重定向用戶的簡單快捷的方法,但您可能對一個插件感興趣,該插件將為您提供一些附加功能。

如果只找到一個結果,則在搜索後重定向用戶

如果您要處理大量文章,則必須具備搜索功能。 如果您每天都在寫作,請想像一下分散在不同類別中的文章數量。 如果你每天只發表三篇短文,第一年之後你的數據庫中就會有上千種不同的標題。 現在想像一下你第一次來到這個網站,同時尋找特定的東西——你會想要搜索它。

默認情況下,WordPress 將搜索帖子標題、標籤,當然還有內容。 因此,如果搜索一個詞或一個特定的短語,它可能會找到幾十個包含該查詢的帖子和頁面。 但是如果只有一個搜索結果呢?

如果有人正在搜索一個非常具體的短語或整個句子,則可能只有少數或可能只有一個結果。 如果只找到一個結果,則無需將用戶重定向到搜索結果頁面。 相反,您為什麼不將該用戶直接帶到結果中找到的帖子/頁面?

讓我們看看如何做到這一點:

  1. 打開functions.php
  2. 複製此代碼並將其粘貼到文件末尾:
 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 ) );
出口;
}
}
}
  1. 保存更改

您已為 WordPress 準備好新功能。 保存更改後,每次用戶搜索只會返回一個結果的內容時,該用戶將被直接重定向到帖子/頁面。

即使看起來沒什麼,我們相信您的訪問者會喜歡您點擊按鈕保存他們。 在此處保存一次點擊並在那裡保存一次點擊會帶來更好的用戶體驗,這可能是您希望在您的網站上獲得的東西,不是嗎?

當在一個類別中只找到一個帖子時重定向用戶

您可以將該用戶直接重定向到帖子/頁面,而不是打開僅包含一個結果的類別或標籤頁面。 與我們的大多數代碼片段一樣,只需複制和粘貼代碼就足夠了:

如果類別或標籤中只有一個帖子,則重定向用戶:

  1. 打開functions.php文件
  2. 複製並粘貼以下代碼:
 函數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');
  1. 保存更改

完成代碼並保存更改後,您可以通過打開僅包含一個帖子/頁面的類別或標籤頁面來測試該功能。 您將被直接重定向到該帖子,而不是打開僅顯示該帖子/頁面的頁面。 很棒,不是嗎?

由於某些用戶可能對此感到困惑,因此包含一條自定義消息將是一個好主意,該消息將告訴用戶只找到一個結果並且發生了重定向。 如果你想這樣做,你可以通過插入一個簡單的“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 網站的標準功能,但肯定可以成為您網站上某個地方的有趣工具。 如果你寫了很多或者可能有很多畫廊,你最終可能會擁有成千上萬普通用戶看不到的頁面。 那麼為什麼不通過將用戶重定向到隨機帖子來讓事情變得更有趣呢?

好的,當然,您不會在用戶不知情的情況下將用戶重定向到隨機帖子,也不會在主頁上這樣做。 但是您可以創建一個簡單的按鈕或鏈接,用戶可以點擊該按鈕或鏈接,然後他將被帶到您網站的另一個頁面。 也許這是一個畫廊。 也許你多年前寫過一篇很酷的社論。 誰知道。 它可以很有趣。

讓我們開始吧:

  1. 首先,您需要準備重定向鏈接。 打開你的functions.php文件
  2. 複製並粘貼以下代碼:
 add_action('init','random_add_rewrite');
函數 random_add_rewrite() {
全球 $wp;
$wp->add_query_var('random');
add_rewrite_rule('隨機/?
  1. 保存更改
  2. 轉到 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並且每次用戶打開頁面時,他都會被重定向到一個隨機頁面。 享受您的新功能。

將您重定向到結論

遲早,您會希望在特定情況下重定向特定用戶。 無論是否有充分的理由並且您試圖讓訪問者購買某些東西,或者您只是想讓登錄過程更舒適,本教程都將幫助您管理重定向。

如果您對編碼足夠熟悉,您將能夠改進這一點並在不同情況下重定向用戶。 如果沒有,我們希望這些示例足以滿足您的需求。