Make WordPress Core

Opened 2 weeks ago

Last modified 2 weeks ago

#49698 accepted defect (bug)

Issue with replacement for filter deprecation

Reported by: renathoc Owned by: SergeyBiryukov
Milestone: 5.5 Priority: normal
Severity: normal Version: 5.4
Component: Plugins Keywords: needs-patch
Focuses: Cc:


The function apply_filters_deprecated has the default value for the $replacement argument as false.

This function uses the _deprecated_hook, sending the same $replacement argument. But in the _deprecated_hook, it considers the default as null.

So the problem occurs when we use the apply_filters_deprecated without a replacement, the with no alternative available message is not shown, but Use instead.

Change History (3)

#1 @SergeyBiryukov
2 weeks ago

  • Component changed from General to Plugins

#2 @SergeyBiryukov
2 weeks ago

  • Keywords needs-patch added
  • Milestone changed from Awaiting Review to 5.5
  • Owner set to SergeyBiryukov
  • Status changed from new to accepted

Hi there, welcome to WordPress Trac! Thanks for the ticket.

The issue is already fixed for WordPress 5.4 in [46792] / #48817.

That said, I think we should switch the default values for $replacement and $message parameters in these functions to an empty string instead of null, to match the documented type of string. The ! is_null() check for these parameters seems unnecessarily strict, we only need to check for a truthy value.

This would affect:

  • _deprecated_function()
  • _deprecated_constructor()
  • _deprecated_file()
  • _deprecated_argument()
  • _deprecated_hook()
  • apply_filters_deprecated()
  • do_action_deprecated()

#3 @renathoc
2 weeks ago

Great! Thank you @SergeyBiryukov

Note: See TracTickets for help on using tickets.