选项1:使用wp_login_url($redirect):
wp_login_url 接受参数
$redirect 这将正确生成
redirect_to 查询参数编码正确:
echo \'<a href="\' . esc_attr( wp_login_url( "http://domain.com/specificpage/?parameter1=dog¶meter2=dog¶meter3=cat" ) ) . \'">test</a>\';
这将打印:
<a href="http://example.com/wp-login.php?redirect_to=http%3A%2F%2Fdomain.com%2Fspecificpage%2F%3Fparameter1%3Ddog%26parameter2%3Ddog%26parameter3%3Dcat">test</a>
如你所能,特殊角色如
? 和
& 使用获取编码
percent encoding 到
%3F 和
%26 分别(不是HTML实体,如
& 如另一个答案所示)。
选项2:使用http_build_query:
如果您不想使用
wp_login_url 但是,作为一种更通用的工具,通常适用于搜索查询,您可以使用PHP的
http_build_query 而是这样:
echo \'<a href="http://example.com/wp-login.php?\' . esc_attr( http_build_query([\'redirect_to\' => \'http://domain.com/specificpage/?parameter1=dog¶meter2=dog¶meter3=cat\']) ) . \'">test</a>\';
这将打印:
<a href="http://example.com/wp-login.php?redirect_to=http%3A%2F%2Fdomain.com%2Fspecificpage%2F%3Fparameter1%3Ddog%26parameter2%3Ddog%26parameter3%3Dcat">test</a>