我在Wordpress中使用Peter的登錄重定向來將每個用戶/角色重定向到其「個人頁面」。如何創建一個鏈接到Peter's登錄重定向的用戶/角色登錄頁面
這一切都很好,但我想創建一個鏈接,任何用戶可以點擊並重定向到它的登錄重定向頁面。
現在,當用戶登錄到他們的「個人頁面」,但點擊進入另一個鏈接時,沒有辦法回到它。
我在Wordpress中使用Peter的登錄重定向來將每個用戶/角色重定向到其「個人頁面」。如何創建一個鏈接到Peter's登錄重定向的用戶/角色登錄頁面
這一切都很好,但我想創建一個鏈接,任何用戶可以點擊並重定向到它的登錄重定向頁面。
現在,當用戶登錄到他們的「個人頁面」,但點擊進入另一個鏈接時,沒有辦法回到它。
爲了解決這個問題,我在function.php中添加了一些代碼,以便能夠在小部件中運行PHP代碼。
這是我加入到functions.php的
add_filter('widget_text','execute_php',100);
function execute_php($html){
if(strpos($html,"<"."?php")!==false){
ob_start();
eval("?".">".$html);
$html=ob_get_contents();
ob_end_clean();
}
return $html;
}
此後,我剛纔添加的HTML/PHP代碼來創建,將重定向當前用戶的個人頁面的鏈接的代碼。我將這段代碼放在用戶登錄我正在使用的登錄窗口小部件插件時應顯示的文本內。
<a href="<?php echo redirect_to_front_page(false, false, wp_get_current_user()); ?>">Your Page</a>
就是這樣。如果需要更多解釋我所做的事情,請在下面留言。
您應該可以使用插件的一部分redirect_to_front_page($redirect_to, $requested_redirect_to, $user)
。它主要用作login_redirect
過濾器的一部分,因此您可以在該處看到有關參數的更多信息。要在此過濾器之外使用,您可以執行以下操作,並在false
中傳遞重定向URLS,並檢測是否通過規則更新。
$user_id = get_current_user_id();
$user = get_user_by('id', $user_id);
if (false !== ($redirect_url = redirect_to_front_page(false, false, $user))){
// $redirect_url is the custom URL
} else {
// there is no custom URL
}
因此,在真正的聲明中,我將不得不調用重定向到'$ redirect_url'中?而在false/else語句中,我必須將其稱爲默認頁面才能正確? 我應該在哪裏放置這段代碼?內部主題文件編輯器?我正在考慮將此鏈接放在登錄窗口小部件中,但我不相信它允許我在其中添加PHP代碼。對不起,我是WP新手,我從來沒有深入過。 – wviana
我使用了這個[link](http://www.emanueleferonato.com/2011/04/11/executing-php-inside-a-wordpress-widget-without-any-plugin/)中描述的步驟'文本小部件'能夠篡改php代碼,而不是像我們在代碼中創建'echo'時那樣插入代碼';'當'true'和'echo'在錯誤時失敗。但它沒有奏效。當只使用簡單的PHP代碼作爲'echo「Hello World」'它就可以工作。我確實試圖打印'$ user' var,但沒有奏效。由於它受WP配置的保護,我不會從PHP獲取任何錯誤消息。 – wviana
我錯過了一個括號,所以你可能會得到一個語法錯誤,但上面的代碼是一個例子,所以你需要在你的服務器上進行調試以確保它能正常工作。隨意再次嘗試上面的代碼,現在它的語法是正確的。 – doublesharp