WordPress user profiles include only a basic Website URL field by default. Author box plugins add social link fields, but you can also add them with code. Here is both approaches.
The Problem with Default WordPress Profile Fields
The WordPress user profile has fields for: first name, last name, nickname, display name, email, website URL, biographical info, and password. There are no fields for LinkedIn, Twitter/X, Instagram, or other social profiles.
Author box plugins add custom social link fields to the user profile screen. These appear when editing a user profile in admin. The author box plugin then reads these fields and outputs the links in the author box display.
Using an Author Box Plugin for Social Links
Most author box plugins add social link fields automatically. Go to Users, then your profile (or any user’s profile as admin), and scroll down to find the social link fields the plugin added. Fill in the profile URLs — use full URLs including https://. Save the profile. The plugin reads and displays these in the author box on the front end.
Adding Custom Social Link Fields with Code
To add social link fields without an author box plugin, add this to your child theme functions.php:
// Add social link fields to user profile
function wpwizzy_add_social_fields( $user ) {
$social_fields = array(
'twitter' => 'Twitter / X URL',
'linkedin' => 'LinkedIn URL',
'instagram' => 'Instagram URL',
'github' => 'GitHub URL',
);
echo '<h3>Social Links</h3><table class="form-table">';
foreach ( $social_fields as $key => $label ) {
$value = 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_url( $value )
);
}
echo '</table>';
}
add_action( 'show_user_profile', 'wpwizzy_add_social_fields' );
add_action( 'edit_user_profile', 'wpwizzy_add_social_fields' );
// Save the social link fields
function wpwizzy_save_social_fields( $user_id ) {
if ( ! current_user_can( 'edit_user', $user_id ) ) return;
$social_fields = array( 'twitter', 'linkedin', 'instagram', 'github' );
foreach ( $social_fields as $key ) {
if ( isset( $_POST[ $key ] ) ) {
update_user_meta( $user_id, $key, sanitize_url( $_POST[ $key ] ) );
}
}
}
add_action( 'personal_options_update', 'wpwizzy_save_social_fields' );
add_action( 'edit_user_profile_update', 'wpwizzy_save_social_fields' );
Displaying Social Links in Author Box Template
In your author box template or theme’s author bio section, retrieve and display the custom fields:
<?php
$author_id = get_the_author_meta( 'ID' );
$social_links = array(
'twitter' => array( 'label' => 'Twitter', 'icon' => 'X' ),
'linkedin' => array( 'label' => 'LinkedIn', 'icon' => 'in' ),
'instagram' => array( 'label' => 'Instagram', 'icon' => 'Ig' ),
'github' => array( 'label' => 'GitHub', 'icon' => 'GH' ),
);
echo '<div class="author-social-links">';
foreach ( $social_links as $key => $data ) {
$url = get_user_meta( $author_id, $key, true );
if ( $url ) {
printf(
'<a href="%s" rel="noopener noreferrer" target="_blank" aria-label="%s">%s</a>',
esc_url( $url ),
esc_attr( $data['label'] ),
esc_html( $data['icon'] )
);
}
}
echo '</div>';
?>
Using Social Links in Person Schema
For E-E-A-T purposes, include the social profile URLs in the Person schema for the author. Add the sameAs property to your author schema pointing to the author’s verified external profiles — LinkedIn in particular is a strong credibility signal for professional expertise.
For complete author profile systems including custom fields, social integration, and schema markup for multi-author editorial sites, a WordPress developer can build a full author management system.