亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊菜單選項時重定向用戶

單擊菜單選項時重定向用戶

PHP
智慧大石 2021-11-19 15:26:15
我正在建立一個新網站,在那里我管理著少量客戶。我創建了一個菜單頁面,當用戶注銷時,它基本上只是告訴用戶登錄。但我想為用戶登錄并單擊同一菜單頁面時進行編碼,我希望它重定向到我為他們創建的私人頁面。每個人都已經有一個私人頁面。每個私人頁面的 URL 是“example.com/private-page/username/。如果個人的 URL 不存在,我只希望代碼返回原始菜單頁面而不是不存在的頁面。我嘗試了不同的方法,包括使用 meta 將頁面刷新到另一個 url。我無法弄清楚究竟是什么不起作用。我在 function.php 上輸入代碼function userredirect(){    $current_user = wp_get_current_user();     if(is_user_logged_in() && is_page('Menu Page')){         wp_redirect('https://example.com/private-page/'.$current_user->user_login.'/');     }}除了顯示頁面的原始內容之外,當我轉到菜單頁面時什么也沒有發生。目前我還沒有想出任何關于如何在網頁不存在的情況下阻止它重定向的線索。
查看完整描述

2 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

重定向沒有觸發的原因是因為您必須在 wp_redirect 之后退出:


見手抄本


    function get_page_by_slug( $slug ) {

        if( $pages = get_pages() )

            foreach( $pages as $page )

                if( $slug === $page->post_name ) return true;

                return false;

   } 

   function userredirect() {

        global $post;

        if( $post->ID == 999999 ){ /* change number on this line to the post ID you want to redirect from */

            $current_user = wp_get_current_user();

            $slug = $current_user->user_login;

            if( is_user_logged_in() && is_page('Menu Page') ){

                 if( get_page_by_slug($slug) ){

                     wp_redirect('https://example.com/private-page/'.$slug.'/');

                     exit;

                }

            }

        }

    }

    add_action( 'init', 'userredirect' );


查看完整回答
反對 回復 2021-11-19
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

is_page('Menu Page') 只有當用戶點擊該頁面時才會給出 true 作為結果。所以如果他在任何其他頁面 wp_redirect 函數就不會啟動。同樣,您可以使用功能包裝您的鏈接:


if get_page_by_path($current_user->user_login) {

#your_link_here

}

所以你的鏈接只有在頁面存在時才可見


查看完整回答
反對 回復 2021-11-19
  • 2 回答
  • 0 關注
  • 184 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號