Narrow $callback parameter type for add_shortcode() #397
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
$callbackis narrowed based on its invocation in core (see shortcodes.php#L432–L434):Here,
$shortcode_tags[$tag]is the$callbackpassed toadd_shortcode(),$attr(often called$attsin callbacks) are the parsed attributes,$contentis the enclosed content ornullwhen no closing tag is present, and$tagis the shortcode name.Accordingly,
$callbackis narrowed to:callable(array<string>, ?string, string): string.Afaik, in current core,
$attris always an array; attributes without explicit values (e.g.[mytag attribute]) produce integer keys. As this is user input - though deprecated - keys may beint|string; hencearray<string>and notarray<string, string>.