当用户单击菜单选项时重定向用户

时间:2019-08-11 作者:Jacob Rowe

我正在建立一个新网站,在那里我管理着一小部分客户。我创建了一个菜单页面,当用户注销时,它基本上只是告诉用户登录。但我想编写代码,当用户登录并单击同一菜单页时,我希望它重定向到我为他们创建的私人页面。每个人都有一个私人页面。每个私有页面的URL是“example.com/private-page/username/。如果个人的URL不存在,我只希望代码返回到原始菜单页面,而不是不存在的页面。

我尝试了不同的方法,包括使用meta将页面刷新到其他url。我不知道到底是什么不起作用。我正在函数上键入代码。php

 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() {
        $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;
        }
    }
当我转到菜单页面时,除了显示页面的原始内容外,什么也没有发生。

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

我看到的第一个问题是:

if( get_page_by_slug($slug) ){
}wp_redirect(\'https://example.com/private-page/\'.$slug.\'/\');
exit;
Theif() 声明不会起任何作用;你的wp_redirect()exit 声明不在{} 支架。

请尝试以下操作:

 if( get_page_by_slug($slug) ){
    wp_redirect(\'https://example.com/private-page/\'.$slug.\'/\');
    exit;
 }
除此之外,还有几件事需要检查:

你说代码在function.php; 如果您引用的是主题文件,则需要functions.php (注意s) 在当前活动主题中

相关推荐

通过unctions.php在纯javascript中安装GTM

GTM documentation 表示包含两个片段,1个在后面<head> 开始标记和1之后<body> 打开标签。最初,我是在孩子的标题中添加代码片段。php文件。我想放弃这个方法,改用纯JS,主要是因为父主题更新。我编写了下面的代码以在函数中使用。php,但它不起作用,我不知道我做错了什么。Edit : 我得到的错误是Uncaught TypeError: Cannot read property \'insertBefore\' of null 对于document.bod