使用自定义URL将用户从注册页面重定向到CPT(配置文件页面)

时间:2016-03-01 作者:MartinJJ

我正在寻找关于wp\\U重定向的一些建议成功注册后,该计划是一个新用户注册,然后在成功后重新定向到自定义帖子类型页面“代理”wp stackexchange问题asked here 两年前。代理页面是一个配置文件页面,包含注册时输入的信息,注册后用户将使用更多信息进行更新。

1) WP\\U DEBUG已启用,WP\\U DEBUG\\U LOG也已启用。2) 我的注册底部有如下重定向:

wp_redirect (agent_permalink($user_id)); exit;
同时尝试以下操作:

wp_redirect (\'agent-profile/\' . $agent_permalink($user_id)); exit;  
这两个(以及我尝试过的其他)都失败了,屏幕为白色,屏幕上没有WP\\U调试错误,也没有写入日志。刷新屏幕时,会显示已注册的用户,但会停留在注册页面上。

使用此选项:

wp_redirect (\'agent-profile\'); exit; 
成功重定向到自定义post类型概要文件页面(我可以看到页面源正文标记中写入的“single”CPT类,编号404)。

要将WPSE成员从该页面切换到提供的链接,这是覆盖成员永久链接的函数:

function agent_permalink ( $user = \'\' ) {
  if ( ! empty($user) ) {
    if ( is_numeric($user) ) { // user id
      $userObj = get_user($user);
    } else { // user nicename
      $userObj = -1;
    }
  } else {
     $userObj = wp_get_current_user();
     $name = isset($userObj->user_nicename) ? $userObj->user_nicename : \'\';
  }
  if ( ! isset($name) ) $name = $userObj == -1 ? $user : $userObj->user_nicename;
  global $wpdb;
  $id = $wpdb->get_var( $wpdb->prepare(
    "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type = \'agent\' AND post_status = \'publish\'",
    $name
  ) );
  return $id ? get_permalink($id) : \'\';
}
Qoute from gmazzap 这个函数很灵活,可以像agent\\u permalink($user\\u id)那样使用,也可以像agent\\u permalink($user\\u nicename)那样使用。

如果当前登录用户是成员,则可以使用agent\\u permalink()之类的函数来检索当前登录成员的url

我试图实现的最终结果是url结构如下:

任何网站。com/代理/代理配置文件/用户名

如果您能帮我指出正确的方向,我们将不胜感激

1 个回复
SO网友:MartinJJ

感谢Kaiser为我指明了正确的方向:

我放弃了agents\\u permalinks功能,并在重定向中使用了此功能,它按预期工作:

wp_redirect (home_url(\'agents/agent-profile/\' . ($user_id))); exit;  

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?