嘿,我有点奇怪的问题。。
我得到了一个表单,可以根据类别和用户级别登录某些单曲。。它工作得很好,但windows(网站所在的服务器)返回的“当前页面”值错误
意思这是:
\'redirect\' => site_url( $_SERVER[\'REQUEST_URI\'] ),
返回:www.somewebsite。com/sub/sub/?p=100
而不是:www.somewebsite。com/sub/?p=100
This is the actuall form:
<div class="logincategory">
<?php wp_login_form( $args );
$args = array(
\'echo\' => true,
\'redirect\' => site_url($_SERVER[\'REQUEST_URI\']),
\'form_id\' => \'loginform\',
\'label_username\' => __( \'Username\' ),
\'label_password\' => __( \'Password\' ),
\'label_remember\' => __( \'Remember Me\' ),
\'label_log_in\' => __( \'Log In\' ),
\'id_username\' => \'user_login\',
\'id_password\' => \'user_pass\',
\'id_remember\' => \'rememberme\',
\'id_submit\' => \'wp-submit\',
\'remember\' => true,
\'value_username\' => NULL,
\'value_remember\' => false ); ?>
</div>
So.. 这是服务器的一个bug,我无法直接解决
so i used
$myCurrentUrl=站点\\u url($\\u服务器[\'REQUEST\\u URI\'])$myCurrentUrltwo=str\\u替换(“www.somewebsite.com/sub/sub/”、“www.somewebsite.com/sub/”、“$myCurrentUrl”);
这(在eching时)返回正确的URL,但如何将变量插入此命令
\'redirect\' => site_url( $_SERVER[\'REQUEST_URI\'] ),
最合适的回答,由SO网友:helgatheviking 整理而成
根据此trac记录单上差异的变化:http://core.trac.wordpress.org/ticket/17243
我已将重定向调整为以下内容
\'redirect\' => ( is_ssl() ? \'https://\' : \'http://\' ) . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\']
当WP在子文件夹中时,这似乎对它有效。这将是从WP 3.3开始的新默认值,WP\\u login\\u form()在3.3-beta3中适用于我,无需传递任何参数。
所以现在,我将根据版本有条件地提供论点(可能有点过头了)
if ( !version_compare( $wp_version, \'3.3-beta3\', \'>=\' ) ) {
$args = array ( \'redirect\' => ( is_ssl() ? \'https://\' : \'http://\' ) . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\']
);
} else {
$args = array ();
}
wp_login_form($args);