这是我的密码
/* Update user information. */
if ( !empty( $_POST[\'url\'] ) ){
update_user_meta( $current_user->id, \'user_url\', esc_url( $_POST[\'url\'] ) );
else{
delete_user_meta( $current_user->id, \'user_url\');
}
if ( !empty( $_POST[\'twit\'] ) ){
update_user_meta( $current_user->id, \'twitter\', esc_attr( $_POST[\'twit\'] ) );
else{
delete_user_meta( $current_user->id, \'twitter\');
}
if ( !empty( $_POST[\'face\'] ) ){
update_user_meta( $current_user->id, \'facebook\', esc_attr( $_POST[\'face\'] ) );
else{
delete_user_meta( $current_user->id, \'facebook\');
}
if ( !empty( $_POST[\'gplus\'] ) ){
update_user_meta( $current_user->id, \'googleplus\', esc_url( $_POST[\'gplus\'] ) );
else{
delete_user_meta( $current_user->id, \'googleplus\');
}
if ( !empty( $_POST[\'email\'] ) )
update_user_meta( $current_user->id, \'user_email\', esc_attr( $_POST[\'email\'] ) );
if ( !empty( $_POST[\'first-name\'] ) ){
update_user_meta( $current_user->id, \'first_name\', esc_attr( $_POST[\'first-name\'] ) );
else{
delete_user_meta( $current_user->id, \'first_name\');
}
if ( !empty( $_POST[\'last-name\'] ) ){
update_user_meta($current_user->id, \'last_name\', esc_attr( $_POST[\'last-name\'] ) );
else{
delete_user_meta( $current_user->id, \'last_name\');
}
if ( !empty( $_POST[\'display_name\'] ) )
update_user_meta($current_user->id, \'display_name\', esc_attr( $_POST[\'display_name\'] ) );
if ( !empty( $_POST[\'description\'] ) ){
update_user_meta( $current_user->id, \'description\', esc_attr( $_POST[\'description\'] ) );
else{
delete_user_meta( $current_user->id, \'description\');
}
但它给了我服务器错误。它不起作用。我的代码怎么了?谢谢
最合适的回答,由SO网友:Kevin Langley Jr. 整理而成
您没有关闭第一个if标记。
/* Update user information. */
if ( !empty( $_POST[\'url\'] ) ){
update_user_meta( $current_user->id, \'user_url\', esc_url( $_POST[\'url\'] ) );
} else{
delete_user_meta( $current_user->id, \'user_url\');
}
此外,您应该使用
esc_url_raw
在一个原始url上,然后如果您要回显到html中,请使用
esc_url
. 您也不应该保存
esc_attr
价值观这将在作为html属性值进行回显时使用。相反,请尝试
wp_filter_kses()
.