如何修改登录页面中的注册链接?

时间:2012-03-26 作者:Steven Doran

这可能很简单,但我想为我的主题添加一个挂钩functions.php 文件以更改登录页上的注册链接(wp-login.php).

我该怎么做?

1 个回复
SO网友:soulseekah

让我们跟着白兔走。

http://core.trac.wordpress.org/browser/tags/3.3.1/wp-login.php#L414

...无法更改,它是硬编码的。但点击后会出现以下情况:

http://core.trac.wordpress.org/browser/tags/3.3.1/wp-login.php#L481

...有一个wp_signup_location 筛选多站点,以防您的站点!is_multisite() 永远不会开火。如果你是多站点的,请停在这里。

add_filter( \'wp_signup_location\', \'wpse_46848_hijack_the_back\' );
function wpse_46848_hijack_the_back( $location ) {
    return \'my-registration-page-is-better.php\';
}
不是多站点,是吗?

registration_redirect 是注册后发生的情况,但在显示注册页面之前调用它。我们可以玩肮脏的游戏,勾住它,然后分散到wp_redirect 使用exit() 在显示原始页面中的任何内容之前。

add_action( \'registration_redirect\', \'wpse_46848_hijack_the_back\' );
function wpse_46848_hijack_the_back( $redirect_to ) {
    wp_redirect( \'my-registration-page-is-better.php\' );
    exit();
}
注意,两者add_actionadd_filter 以同样的方式工作(add_action 呼叫add_filter), 尽管通常不建议将它们混合使用,因为事情会变得混乱,但从语义上讲,您是在用带有操作的过滤器劫持,而不是过滤器(因为您没有返回任何东西)。如果您希望坚持严格的“过滤器是过滤器,操作是操作”规则,请执行以下操作:

add_filter( \'registration_redirect\', \'wpse_46848_hijack_the_back\' );
function wpse_46848_hijack_the_back( $redirect_to ) {
    wp_redirect( \'my-registration-page-is-better.php\' );
    return exit();
}

结束

相关推荐

将wp_LOGIN_FORM密码用作未定义

您好,我正在使用wp\\u login\\u form函数,当它显示密码字段时,始终显示单词undefined。如果我在登录表单时删除它,效果会很好。任何人都知道为什么这个占位符值存在,无论我在哪个实例中使用它(页面、帖子、主题)谢谢