Opened 5 years ago
Last modified 4 weeks ago
#54438 new enhancement
"Required fields are marked" shows up without required fields being present
| Reported by: | webzunft | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Awaiting Review |
| Component: | Media | Version: | 5.8.2 |
| Severity: | minor | Keywords: | required-fields has-patch has-unit-tests |
| Cc: | Focuses: | ui |
Description
A support ticket for my Image Source Control (ISC) plugin made me investigate this.
https://wordpress.org/support/topic/erforderliche-felder-sind-mit-markiert/
Whenever a custom field is added to the attachment edit page, the notice "Required fields are marked" is displayed by WordPress core.
ISC uses the attachment_fields_to_edit filter for that.
I looked into wp-admin/includes/media.php. The code responsible for showing the message is
if ( $item ) {
$item = '<p class="media-types media-types-required-info">' .
/* translators: %s: Asterisk symbol (*). */
sprintf( __( 'Required fields are marked %s' ), '<span class="required">*</span>' ) .
'</p>' .
'<table class="compat-attachment-fields">' . $item . '</table>';
}
The foreach loop that goes through all fields could easily check if any field has the "required" attribute and rather use that as a condition to show the message instead of $item.
Change History (5)
#2
@
5 years ago
And get_media_item probably should have something similar, though that function adds the required field message before the foreach loop.
(wp_media_insert_url_form has the message, too, but that always includes required fields)
#3
@
3 years ago
Any updates on resolving this one please? Just ran into the same issue and found this ticket.
This ticket was mentioned in Slack in #core by svunz. View the logs.
3 years ago
This ticket was mentioned in PR #12536 on WordPress/wordpress-develop by @arkaprabhachowdhury.
4 weeks ago
#5
- Keywords has-patch has-unit-tests added; needs-patch removed
## Trac ticket
https://core.trac.wordpress.org/ticket/54438
## Description
Only displays the required fields message in the legacy media attachment forms when at least one visible rendered field is required.
This updates both get_media_item() and get_compat_media_markup(), and adds regression tests for forms with and without required fields.
## Testing
- PHPCS passes for the changed files with warnings disabled; the full source file has three unrelated pre-existing warnings.
- PHP syntax checks pass.
- Focused PHPUnit could not complete locally because Docker Desktop's Linux engine stopped after the MySQL container startup. CI is expected to provide the authoritative PHPUnit result.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Thanks for the report!
That code is in the get_compat_media_markup function. The
if ( $item )condition is necessary to determine whether to output the table tag (which lacksrole="presentation"), but another condition could be added inside that one for the required field message.