#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
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