如何检查用户是否被重定向?

时间:2015-06-18 作者:scarably

我需要一个关于如何进行以下操作的建议:我已经注册了课程,并创建了一个自定义帖子类型,例如课程1Course1有儿童贴子-有些是私人贴子(如讲座),有些不是。

当用户试图打开讲座时,将选中用户的元字段,并根据该值显示内容或将用户重定向到父级。我用过template_redirect 钩子(可能不是正确的)。我现在需要的是在重定向后在家长课程帖子上显示一些带有通知的横幅(例如,你看不到私人内容)。我怎么知道用户试图打开讲座,但它被重定向了?我尝试在重定向功能中使用会话,但没有成功(横幅在所有课程1上都处于活动状态)。你能给我一些建议吗?非常感谢。

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

您可以使用wp_get_referer 功能以满足您的需求。

下面是对您有用的代码段。

    function wdm_referer()
    {
        global $post;

        if( post type is child  ) {

            $child_post_id = $post->ID;

            $parent_id = get_parent_course_id($child_post_id); // your custom function to get parent course id

            if( parent task is not completed ) { // a condition that you are checking on child page and redirecting

                // to get http referer
                $page_referer = wp_get_referer();

                // to get parent post permalink
                $parent_permalink = get_permalink( $parent_id );

                // if parent course link is same as http referer
                if( $page_referer == $parent_permalink ) {
                    //user came from parent course. Your code to display in content
                }
            }
        }
    }

add_action(\'the_content\', \'wdm_referer\');

结束

相关推荐

Preventing session timeout

不确定这是一个bug还是出于设计,但它真的很烦人。每隔一段时间,在更新核心之后,在管理部分,我就会收到臭名昭著的“您的会话已过期”消息。很奇怪,因为WP显然不使用会话。登录提示带有一个“记住我”复选框,为什么它不记得?我想这里的“记住我”和“让我登录”是有区别的。我禁用了所有插件,删除了Cookie,尝试了其他浏览器,甚至对着屏幕大喊大叫,但我一直被淘汰。WP是否在管理部分设置了无活动时间限制?有人能解释一下WP到底是怎么让用户登录的吗。