2 | | |
3 | | Replying to [ticket:32557 seeyouu]: |
4 | | > Dear Sir/Mdm, |
5 | | > |
6 | | > I'd recently installed a slider plugin called Slider WD [http://52.74.232.138/WordPress/wp-admin/plugin-install.php?tab=plugin-information&plugin=slider-wd&TB_iframe=true&width=600&height=550] into my wordpress version 4.2.2, and i found a problem which i can't add image into my slider. |
7 | | > |
8 | | > Once clicked "Add Image" button, it will show that Fatal error occured at wp-includes/functions.wp-scripts.php line 85, do_items is referred to a non-object. |
9 | | > |
10 | | > I did further study about the script and i found that probably a programming error under wp_print_scripts function which caused this issue. |
11 | | > |
12 | | > Below are the comparison of the same function under different version |
13 | | > version 4.2.2: |
14 | | > function wp_print_scripts( $handles = false ) { |
15 | | > /** |
16 | | > * Fires before scripts in the $handles queue are printed. |
17 | | > * |
18 | | > * @since 2.1.0 |
19 | | > */ |
20 | | > do_action( 'wp_print_scripts' ); |
21 | | > if ( '' === $handles ) { // for wp_head |
22 | | > $handles = false; |
23 | | > } |
24 | | > |
25 | | > _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ ); |
26 | | > |
27 | | > global $wp_scripts; |
28 | | > if ( ! ( $wp_scripts instanceof WP_Scripts ) ) { |
29 | | > if ( ! $handles ) { |
30 | | > return array(); // No need to instantiate if nothing is there. |
31 | | > } |
32 | | > } |
33 | | > |
34 | | > return wp_scripts()->do_items( $handles ); |
35 | | > } |
36 | | > |
37 | | > Version 4.0.2: |
38 | | > function wp_print_scripts( $handles = false ) { |
39 | | > /** |
40 | | > * Fires before scripts in the $handles queue are printed. |
41 | | > * |
42 | | > * @since 2.1.0 |
43 | | > */ |
44 | | > do_action( 'wp_print_scripts' ); |
45 | | > if ( '' === $handles ) // for wp_head |
46 | | > $handles = false; |
47 | | > |
48 | | > global $wp_scripts; |
49 | | > if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { |
50 | | > if ( ! did_action( 'init' ) ) |
51 | | > _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ), |
52 | | > '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' ); |
53 | | > |
54 | | > if ( !$handles ) |
55 | | > return array(); // No need to instantiate if nothing is there. |
56 | | > else |
57 | | > $wp_scripts = new WP_Scripts(); |
58 | | > } |
59 | | > |
60 | | > return $wp_scripts->do_items( $handles ); |
61 | | > } |
62 | | > |
63 | | > under the condition if ( !$handles ), there's an else statement $wp_scripts = new WP_Scripts(); in version 4.0.2, however, version 4.2.2, this statement is missing. |