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