Replies: 1
After upgrading to PHP 8.1, the Yoast plugin is occasionally throwing an Uncaught TypeError on the edit post (wp-admin/post.php) page. See below:
An error of type E_ERROR was caused in line 1027 of the file /srv/htdocs/wp-content/plugins/wordpress-seo/inc/class-wpseo-meta.php. Error message: Uncaught TypeError: array_map(): Argument #2 ($array) must be of type array, bool given in /srv/htdocs/wp-content/plugins/wordpress-seo/inc/class-wpseo-meta.php:1027
Stack trace:
#0 /srv/htdocs/wp-content/plugins/wordpress-seo/inc/class-wpseo-meta.php(1027): array_map(Object(Closure), false)
#1 /srv/htdocs/wp-content/plugins/wordpress-seo/admin/formatter/class-post-metabox-formatter.php(190): WPSEO_Meta::keyword_usage('vision board fo...', 41089)
#2 /srv/htdocs/wp-content/plugins/wordpress-seo/admin/formatter/class-post-metabox-formatter.php(150): WPSEO_Post_Metabox_Formatter->get_keyword_usage_for_current_post('vision board fo...')
#3 /srv/htdocs/wp-content/plugins/wordpress-seo/admin/formatter/class-post-metabox-formatter.php(76): WPSEO_Post_Metabox_Formatter->get_focus_keyword_usage()
#4 /srv/htdocs/wp-content/plugins/wordpress-seo/admin/formatter/class-metabox-formatter.php(44): WPSEO_Post_Metabox_Formatter->get_values()
#5 /srv/htdocs/wp-content/plugins/wordpress-seo/admin/metabox/class-metabox.php(289): WPSEO_Metabox_Formatter->get_values()
#6 /srv/htdocs/wp-content/plugins/wordpress-seo/admin/metabox/class-metabox.php(902): WPSEO_Metabox->get_metabox_script_data()
#7 /wordpress/core/5.8.2/wp-includes/class-wp-hook.php(303): WPSEO_Metabox->enqueue('post.php')
#8 /wordpress/core/5.8.2/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters(NULL, Array)
#9 /wordpress/core/5.8.2/wp-includes/plugin.php(470): WP_Hook->do_action(Array)
#10 /wordpress/core/5.8.2/wp-admin/admin-header.php(102): do_action('admin_enqueue_s...', 'post.php')
#11 /wordpress/core/5.8.2/wp-admin/edit-form-blocks.php(289): require_once('/wordpress/core...')
#12 /wordpress/core/5.8.2/wp-admin/post.php(187): require('/wordpress/core...')
#13 {main}
thrown
Is this due to PHP 8.1.x being less forgiving of type mismatches ? I was on PHP 8.0.x for a while with no such issues, but this came up within 24 hours of upgrading to 8.1, so am assuming it’s a change in behaviour relating to 8.1 ?