25% off ProSNIPC25OFF

Add Social Media Links to User Profiles

Adds Twitter/X, LinkedIn, and GitHub URL fields to the WordPress user profile screen and saves them as user meta.

PHPby SnipCraft
php
<?php
if ( ! function_exists( 'scseed_social_profile_fields_render' ) ) {
    function scseed_social_profile_fields_render( $user ) {
        $fields = [
            'scseed_twitter'  => 'Twitter / X URL',
            'scseed_linkedin' => 'LinkedIn URL',
            'scseed_github'   => 'GitHub URL',
        ];
        echo '<h3>Social Media Links</h3><table class="form-table">';
        foreach ( $fields as $key => $label ) {
            $value = (string) get_user_meta( $user->ID, $key, true );
            printf(
                '<tr><th><label for="%1$s">%2$s</label></th>' .
                '<td><input type="url" id="%1$s" name="%1$s" value="%3$s" class="regular-text" /></td></tr>',
                esc_attr( $key ),
                esc_html( $label ),
                esc_attr( $value )
            );
        }
        echo '</table>';
    }
    add_action( 'show_user_profile', 'scseed_social_profile_fields_render' );
    add_action( 'edit_user_profile', 'scseed_social_profile_fields_render' );

    function scseed_social_profile_fields_save( $user_id ) {
        if ( ! current_user_can( 'edit_user', $user_id ) ) {
            return;
        }
        $fields = [ 'scseed_twitter', 'scseed_linkedin', 'scseed_github' ];
        foreach ( $fields as $key ) {
            if ( isset( $_POST[ $key ] ) ) {
                update_user_meta( $user_id, $key,
                    esc_url_raw( wp_unslash( $_POST[ $key ] ) ) );
            }
        }
    }
    add_action( 'personal_options_update',  'scseed_social_profile_fields_save' );
    add_action( 'edit_user_profile_update', 'scseed_social_profile_fields_save' );
}
#admin#contact-fields#profile#social-media#users