WordPress 4.4
-
Just installed 4.4 Clicking on an event gives me “warning: array_map ……”. What to do?
-
What’s the full error message (and which line / file is giving the warning)? Also, what plug-ins/themes do you have installed, and does the warning persist if you disable those themes/plug-ins.
You can suppress warnings by adding this to your wp-config.php: http://stackoverflow.com/a/1987588.
Regardless, please do provide the above details – if there’s a bug, even if its just causing a warning, I’d want to fix it π
It happens when I click on an event in the calendar. There was no warning using wp 4.3.1
I changed the theme to the standard one from wp but same result.
The text of the warning is:( ! ) Warning: array_map(): Argument #2 should be an array in C:\wamp\www\ResidentieBeukenhof\Prod2015-12-06\wp-includes\category-template.php on line 1158
Call Stack
# Time Memory Function Location
1 0.0012 249344 {main}( ) ..\index.php:0
2 0.0021 252552 require( ‘C:\wamp\www\ResidentieBeukenhof\Prod2015-12-06\wp-blog-header.php’ ) ..\index.php:17
3 1.4930 59285288 require_once( ‘C:\wamp\www\ResidentieBeukenhof\Prod2015-12-06\wp-includes\template-loader.php’ ) ..\wp-blog-header.php:16
4 1.5041 59449136 include( ‘C:\wamp\www\ResidentieBeukenhof\Prod2015-12-06\wp-content\themes\sparkling\single.php’ ) ..\template-loader.php:89
5 1.8937 60321728 get_template_part( ) ..\single.php:15
6 1.8938 60322600 locate_template( ) ..\general-template.php:171
7 1.8943 60322760 load_template( ) ..\template.php:521
8 1.8952 60354656 require( ‘C:\wamp\www\ResidentieBeukenhof\Prod2015-12-06\wp-content\themes\sparkling\content-single.php’ ) ..\template.php:564
9 1.9054 60358848 the_content( ) ..\content-single.php:32
10 1.9055 60359472 apply_filters( ) ..\post-template.php:230
11 1.9081 60363480 call_user_func_array:{C:\wamp\www\ResidentieBeukenhof\Prod2015-12-06\wp-includes\plugin.php:235} ( ) ..\plugin.php:235
12 1.9081 60363592 _eventorganiser_single_event_content( ) ..\plugin.php:235
13 1.9083 60380360 eo_get_template_part( ) ..\event-organiser-templates.php:309
14 1.9084 60381248 eo_locate_template( ) ..\event-organiser-templates.php:40
15 1.9100 60382784 load_template( ) ..\event-organiser-templates.php:94
16 1.9113 60427968 require( ‘C:\wamp\www\ResidentieBeukenhof\Prod2015-12-06\wp-content\plugins\event-organiser\templates\event-meta-event-single.php’ ) ..\template.php:564
17 1.9182 60432016 get_the_terms( ) ..\event-meta-event-single.php:73
18 1.9185 60437864 array_map ( ) ..\category-template.php:1158Can you confirm that the event has no categories?
This appears to be a bug in WordPress 4.4 – the bug being in
get_the_terms()which is where the warning is being generated.It seems it was reported here and not identified as a bug in core: https://core.trac.wordpress.org/ticket/34723
I’d recommend suppressing warnings for now.
Incidentally an immediate work-around for this would be to enable event tags.
Doing so shouldn’t affect the front-end view of your site beyond fixing the warning.
Don’t know if this will fix your entire error message concerning this plugin, but the category-template.php error has been noted with the 4.4 release. As James Huff pointed on WordPress 4.4 Master List a few hours ago, a patch for this problem has been made:
https://core.trac.wordpress.org/attachment/ticket/34723/34723.patch
To fix, open your category-template.php and replace lines 1144 – 1158…
function get_the_terms( $post, $taxonomy ) { if ( ! $post = get_post( $post ) ) return false; $terms = get_object_term_cache( $post->ID, $taxonomy ); if ( false === $terms ) { $terms = wp_get_object_terms( $post->ID, $taxonomy ); $to_cache = array(); foreach ( $terms as $key => $term ) { $to_cache[ $key ] = $term->data; } wp_cache_add( $post->ID, $to_cache, $taxonomy . '_relationships' ); } $terms = array_map( 'get_term', $terms );…with the new code from the patch:
function get_the_terms( $post, $taxonomy ) { if ( ! $post = get_post( $post ) ) return false; $terms = get_object_term_cache( $post->ID, $taxonomy ); if ( false === $terms ) { $terms = wp_get_object_terms( $post->ID, $taxonomy ); if ( ! is_wp_error( $terms ) ) { $to_cache = array(); foreach ( $terms as $key => $term ) { $to_cache[ $key ] = $term->data; } wp_cache_add( $post->ID, $to_cache, $taxonomy . '_relationships' ); } } if ( ! is_wp_error( $terms ) ) { $terms = array_map( 'get_term', $terms ); }So is now line 1144 – 1162. This fix will be included in the future 4.4.1 I suppose
Hi Ronald,
Yes, the patch you’ve referenced will fix this in the plug-in.
The bug is call
get_the_terms()with a taxonomy that doesn’t exist – which until 4.4 was a perfectly valid. So this will bug will potentially affect many other plug-ins, but it is due to be fixed in 4.4.1.However, I’d recommend enabling event tags in Settings > Event Organiser > General as a safer (and easier) work-around to this bug – unless you also have other plug-ins which are impacted by this bug.
Hi Stephen, thank you for this tip, it works by me fine with WordPress 4.4.
Solved!
The topic ‘WordPress 4.4’ is closed to new replies.