web-dev-qa-db-ja.com

ユーザー情報を更新する

これは私のコードです

/* 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');
        }

しかしそれは私にサーバーエラーを与えます。うまくいきません。私のコードの何が問題になっていますかありがとう。

1
boranb

あなたは最初の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');
}

また、生のURLにesc_url_rawを使用する必要があります。そして、HTMLにエコーする場合はesc_urlを使用します。 esc_attrの値も保存しないでください。これは、html属性値としてエコーするときに使用されます。代わりにwp_filter_kses()を試してください。

1