后端表单上的自定义注册链接

时间:2011-09-14 作者:Josh Allen

我希望在WordPress安装的后端为我的登录表单提供类似的解决方案:Forgot Password URL Filter

我想做的不是返回一个自定义忘记密码url,而是返回一个自定义注册链接(所有这些都在登录表单上/wp-login.php). 基本上,我正在尝试将WordPress完全白化,我有前端表单,用于创建和编辑帖子、注册、登录、个人资料编辑和帖子管理,所有这些都在前端。但是,当有人尝试登录但尝试失败时,他们会被重定向到/wp-login.php.

理想情况下,我可以在我的网站上抛出一个错误,并将其重定向到我的前端登录页面(是否有过滤器?),但更糟糕的情况是,我已经重新命名了我的后端表单,所以wordpress看起来不像是一个问题(除了urlhttp://www.site.com/wp-login.php, 但这不是什么大问题)我想知道的是,是否有一个过滤器,以便我可以在后端返回一个自定义注册链接,如果可能的话,甚至可以返回一个自定义登录链接。

我了解到有一个lostpassword\\u url过滤器,但据我所知,没有一个register\\u url过滤器可以用来更改它。

有什么帮助吗?

UPDATE

http://core.trac.wordpress.org/browser/tags/3.2.1/wp-login.php#L418

这就是我想用过滤器来改变的东西。

1 个回复
SO网友:Roman

我不是百分之百确定,但似乎注册链接是在general-template.php 在里面wp-includes. 查看函数wp_register. 这里有一个名为register 可用于过滤wp-login.php 出来

/**
 * Display the Registration or Admin link.
 *
 * Display a link which allows the user to navigate to the registration page if
 * not logged in and registration is enabled or to the dashboard if logged in.
 *
 * @since 1.5.0
 * @uses apply_filters() Calls \'register\' hook on register / admin link content.
 *
 * @param string $before Text to output before the link (defaults to <li>).
 * @param string $after Text to output after the link (defaults to </li>).
 * @param boolean $echo Default to echo and not return the link.
 */
function wp_register( $before = \'<li>\', $after = \'</li>\', $echo = true ) {

    if ( ! is_user_logged_in() ) {
        if ( get_option(\'users_can_register\') )
            $link = $before . \'<a href="\' . site_url(\'wp-login.php?action=register\', \'login\') . \'">\' . __(\'Register\') . \'</a>\' . $after;
        else
            $link = \'\';
    } else {
        $link = $before . \'<a href="\' . admin_url() . \'">\' . __(\'Site Admin\') . \'</a>\' . $after;
    }

    if ( $echo )
        echo apply_filters(\'register\', $link);
    else
        return apply_filters(\'register\', $link);
}
编辑
add_filter(\'register\', \'wpse28495_wpRegister\');
function wpse28495_wpRegister($link) {
    if(!is_user_logged_in()) {
        $link = \'<a href="\' . site_url(\'my-login.php\') . \'">\' . __(\'Register\') . \'</a>\';
    }

    return $link;
}

结束

相关推荐

Front-End Post Submission

我正在尝试添加一个表单,用户可以从前端提交帖子。我正在学习本教程:http://wpshout。com/wordpress从前端提交帖子/我正在做的是添加this code 到我的一个页面模板。表单显示正常,但当我单击“提交”按钮时,它会显示“Page not found error“”许多评论者说这不起作用。谁能给我指出正确的方向吗?代码是否不完整?有缺陷吗?我做错什么了吗?谢谢Towfiq I。