author_can() WordPress Function

The author_can() function allows a user to check if the author of a post can perform a certain action. This is useful for customizing the behavior of your site based on the capabilities of the author.

author_can( int|WP_Post $post, string $capability, mixed $args ) #

Returns whether the author of the supplied post has the specified capability.


Description

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:

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

Top ↑

Parameters

$post

(int|WP_Post)(Required)Post ID or post object.

$capability

(string)(Required)Capability name.

$args

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


Top ↑

Return

(bool) Whether the post author has the given capability.


Top ↑

Source

File: wp-includes/capabilities.php

function author_can( $post, $capability, ...$args ) {
	$post = get_post( $post );
	if ( ! $post ) {
		return false;
	}

	$author = get_userdata( $post->post_author );

	if ( ! $author ) {
		return false;
	}

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


Top ↑

Changelog

Changelog
VersionDescription
5.3.0Formalized the existing and already documented ...$args parameter by adding it to the function signature.
2.9.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.