How to Customize the Admin Footer Text
The WordPress admin footer shows a default “Thank you for creating with WordPress” message and the WordPress version.
For client sites, internal tools, or team workflows, it’s often useful to replace this with custom text
such as support links, documentation, or environment labels (staging/production).
This article shows how to customize the admin footer text safely using code (no plugins),
with screen targeting, capability control, and security-friendly output.
What Controls the Admin Footer
WordPress outputs footer text through two filters:
admin_footer_text(left side)update_footer(right side, usually the version)
You can change either one—or both—depending on what you need.
Customize the Left Footer Text
Use admin_footer_text to replace the default message.
<?php
add_filter( 'admin_footer_text', function ( $footer_text ) {
// Keep default text for users who can update core (optional)
if ( current_user_can( 'update_core' ) ) {
return $footer_text;
}
$text = 'Need help? See the internal docs.';
$url = 'https://example.com/docs/';
$label = 'Documentation';
return sprintf(
'%s — <a href="%s" target="_blank" rel="noreferrer noopener">%s</a>',
esc_html( $text ),
esc_url( $url ),
esc_html( $label )
);
} );
This keeps the output safe:
- All text is escaped
- Links use
rel="noreferrer noopener" - Admins can keep the original footer (optional)
Customize the Right Footer (Version Area)
The right footer typically shows “Version x.y.z”.
You can replace it using update_footer.
<?php
add_filter( 'update_footer', function ( $footer_text ) {
// Example: show environment label instead of WordPress version
return esc_html__( 'Environment: STAGING', 'default' );
}, 11 );
Priority 11 ensures your value runs after WordPress sets the default.
Show Different Footer Text on Specific Admin Screens
If you only want to change the footer on certain screens (e.g. post editor),
use get_current_screen().
<?php
add_filter( 'admin_footer_text', function ( $footer_text ) {
$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
if ( ! $screen ) {
return $footer_text;
}
// Examples: post editor screens
$targets = array( 'post', 'page' );
if ( ! in_array( (string) $screen->id, $targets, true ) ) {
return $footer_text;
}
return esc_html__( 'Tip: Use a 1280×720 featured image for best social previews.', 'default' );
} );
This avoids clutter and keeps the customization purposeful.
Only Show Custom Footer Text to Certain Roles
Admin footer text can act as a role-based reminder.
Use capability checks (recommended) instead of hardcoding roles everywhere.
<?php
add_filter( 'admin_footer_text', function ( $footer_text ) {
if ( ! current_user_can( 'edit_posts' ) ) {
return $footer_text;
}
if ( current_user_can( 'manage_options' ) ) {
return $footer_text;
}
return esc_html__( 'Content team: Please double-check SEO title and featured image before publishing.', 'default' );
} );
Optional: Keep WordPress Version Hidden for Non-Admins
Some teams prefer not to display WordPress versions to non-admin users.
You can keep the default for admins but hide it for others.
<?php
add_filter( 'update_footer', function ( $footer_text ) {
if ( current_user_can( 'manage_options' ) ) {
return $footer_text;
}
return '';
}, 11 );
Common Mistakes to Avoid
- Echoing raw HTML without escaping
- Changing footer text globally when only one screen needs it
- Hardcoding role names everywhere (capabilities are more flexible)
Summary
- Use
admin_footer_textto customize the left footer message - Use
update_footerto customize the right footer area - Target screens with
get_current_screen()to avoid noise - Use capability checks to keep behavior predictable
- Escape output to keep it safe
With these hooks, you can turn the admin footer into a helpful, low-noise place for internal links,
support info, and environment cues—without plugins.
🎨 Want to learn more? Visit our WordPress Customization Hub for tips and advanced techniques.