current_user_can( string $capability, mixed $args )

Returns whether the current user has the specified capability.


This function also accepts an ID of an object to check against if the capability is a meta capability. Meta capabilities such as edit_post and edit_user are capabilities used by the map_meta_cap() function to map to primitive capabilities that a user or role has, such as edit_posts and edit_others_posts.

Example usage:

current_user_can( 'edit_posts' );
current_user_can( 'edit_post', $post->ID );
current_user_can( 'edit_post_meta', $post->ID, $meta_key );

While checking against particular roles in place of a capability is supported in part, this practice is discouraged as it may produce unreliable results.

Note: Will always return true if the current user is a super admin, unless specifically denied.

See also



(string) (Required) Capability name.


(mixed) (Optional) further parameters, typically starting with an object ID.


(bool) Whether the current user has the given capability. If $capability is a meta cap and $object_id is passed, whether the current user has the given meta capability for the given object.


File: wp-includes/capabilities.php

function current_user_can( $capability, ...$args ) {
	$current_user = wp_get_current_user();

	if ( empty( $current_user ) ) {
		return false;

	return $current_user->has_cap( $capability, ...$args );


Version Description
5.3.0 Formalized the existing and already documented ...$args parameter by adding it to the function signature.
2.0.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.