我可以更改默认注册链接(没有htaccess)吗?

时间:2011-05-27 作者:mvod

我使用的url类似于«wp login。php?操作=注册(&M);role=patient»和«register\\u form»挂钩,用于添加额外输入表单,该表单依赖于如下URL:

add_action(\'register_form\',\'add_extra_role_fields\');

function add_extra_role_fields() {
if (isset($_GET[\'role\'])) { $user_type = $_GET[\'role\']; }

if (isset($user_type) && $user_type == "patient") [...] 
if (isset($user_type) && $user_type == "doctor") [...]
Problem: Wordpress在表单验证后将用户重定向到http://example.com/wp-login.php?action=register 而不是http://example.com/wp-login.php?action=register&role=patient所有的逻辑都被打破了。

Question: wordpress能否将用户重定向到previos url«?操作=注册(&M);角色=医生»(非默认«?操作=注册»)?

Solution: 谢谢你,简·法布里:)。

if ( isset($_REQUEST[\'role\']) && ( ($_REQUEST[\'role\'] == \'patient\') OR ($_REQUEST[\'role\'] == \'doctor\') ) ) {

    add_filter( \'site_url\', \'doctor_site_url\', 10, 4 ); 

    function doctor_site_url( $url, $path, $scheme, $blog_id ) {
        if ( \'login_post\' == $scheme ) {
            $url .= \'&role=\'.$_REQUEST[\'role\'];
            }
        return $url;
        }
}

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

如果你想把这些信息保存在$_GET, 您必须修改the form\'s action parameter URL. 你可以通过site_url:

add_filter( \'site_url\', \'wpse18418_site_url\', 10, 4 );
function wpse18418_site_url( $url, $path, $scheme, $blog_id )
{
    if ( \'login_post\' == $scheme ) {
        $url .= \'&role=doctor\'; // Or do this dynamically
    }
    return $url;
}
但不是总是看着$_GET, 这可能是一个解决方案role 隐藏字段中的字段并检查$_REQUEST 相反,它将同时包含$_GET$_POST.

结束

相关推荐

URL redirect problem

我的wordpress 3.0.1站点中有2个页面,包含2个URLwww.mysite。co.uk/sub-page/child-of-sub-page/acculation/和www.mysite。co.uk/conditionment公司/但是,我的网站中的任何链接都可以链接到www.mysite。co.uk/acculation/访问www.mysite。co.uk/sub-page/child-of-sub-page/acculation/代替这是wordpress 3.0.1中的错误吗?还是有办