#51629 closed defect (bug) (duplicate)
[php8] TypeError: call_user_func_array(): non-static method WP_Feed_Cache::create() cannot be called statically
Reported by: | bph | Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 5.6 |
Component: | Feeds | Keywords: | php8 has-patch |
Focuses: | Cc: |
Description (last modified by )
Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($function) must be a valid callback, non-static method WP_Feed_Cache::create() cannot be called statically in /home/customer/www/icodeforapurpose.com/public_html/wp-includes/SimplePie/Registry.php:214
**StackTrace** #0 /wp-includes/class-simplepie.php(1412): SimplePie_Registry->call('Cache', 'get_handler', Array) #1 /wp-includes/feed.php(821): SimplePie->init() #2 /wp-includes/widgets.php(1513): fetch_feed('https://wordpre...') #3 /wp-content/plugins/wordpress-beta-tester/src/WPBT/WP_Beta_Tester.php(288): wp_widget_rss_output('https://wordpre...', Array) #4 /wp-content/plugins/wordpress-beta-tester/src/WPBT/WP_Beta_Tester.php(256): WP_Beta_Tester->parse_development_feed('5.6') #5 /wp-admin/includes/template.php(1389): WP_Beta_Tester->beta_tester_dashboard('', Array) #6 /wp-admin/includes/dashboard.php(256): do_meta_boxes(Object(WP_Screen), 'normal', '') #7 /wp-admin/index.php(177): wp_dashboard() #8 {main} thrown in /wp-includes/SimplePie/Registry.php on line 214
Attachments (1)
Change History (15)
#2
@
4 years ago
- Component changed from General to Feeds
- Description modified (diff)
- Keywords php8 added
- Milestone changed from Awaiting Review to 5.6
- Summary changed from [php8] TypeError: call_user_func_array() to [php8] TypeError: call_user_func_array(): non-static method WP_Feed_Cache::create() cannot be called statically
#3
@
4 years ago
In PHP 8.0 attempting to call a non-static as static causes fatal error in PHP 8.0. This was silenced with the @
operator which suppressed the PHP warning, but now that it's a type error, it bubbles up to the error handler.
From what I see, Cache::create
method is moved to SimplePie_Cache::get_handle
. I don't see why we can't rewrite the class to SimplePie_Cache
. I will attach a patch, could you give it a try please? I suppose the fix should be sent to upstream SimplePie project before we make changes in core, or wait for a fix from the maintainers upstream.
#4
@
4 years ago
@ayeshrajans perhaps I'm incorrect but as SimplePie is an includes library and not native to WordPress I think the solution needs to be outside of the SimplePie framework.
#5
@
4 years ago
@afragen - I think so too, I will try to submit a PR to upstream Simplepie. We already have an updated Simplepie version for WordPress 5.6, so a minor update would be nice if we could squeeze one in.
#6
@
4 years ago
- Keywords has-patch needs-testing added
I believe https://core.trac.wordpress.org/attachment/ticket/29204/29204.3.diff fixes this ticket too.
Refer: https://core.trac.wordpress.org/ticket/29204#comment:41
This ticket was mentioned in Slack in #core by hellofromtonya. View the logs.
4 years ago
This ticket was mentioned in Slack in #core by jrf. View the logs.
4 years ago
This ticket was mentioned in Slack in #core by jrf. View the logs.
4 years ago
This ticket was mentioned in Slack in #core by sergey. View the logs.
4 years ago
This ticket was mentioned in Slack in #core by jrf. View the logs.
4 years ago
#14
@
4 years ago
- Keywords commit removed
- Milestone 5.6 deleted
- Resolution set to duplicate
- Status changed from new to closed
Hi there, welcome to WordPress Trac! Thanks for the report.
This is more prominent with PHP 8, but is essentially the same issue as in #29204, let's continue there.
See comment:55:ticket:29204 for a detailed analysis.
Related #51559, #29204