diff --git wp-includes/meta.php wp-includes/meta.php
index 9db1de3..569b951 100644
|
|
class WP_Meta_Query { |
795 | 795 | continue; |
796 | 796 | } |
797 | 797 | } else { |
798 | | $meta_value = trim( $meta_value ); |
| 798 | if ( ! is_array( $meta_value ) ) |
| 799 | $meta_value = trim( $meta_value ); |
799 | 800 | } |
800 | 801 | |
801 | 802 | if ( 'IN' == substr( $meta_compare, -2) ) { |
… |
… |
class WP_Meta_Query { |
804 | 805 | $meta_value = array_slice( $meta_value, 0, 2 ); |
805 | 806 | $meta_compare_string = '%s AND %s'; |
806 | 807 | } elseif ( 'LIKE' == substr( $meta_compare, -4 ) ) { |
807 | | $meta_value = '%' . like_escape( $meta_value ) . '%'; |
| 808 | if ( ! is_array( $meta_value ) ) |
| 809 | $meta_value = '%' . like_escape( $meta_value ) . '%'; |
808 | 810 | $meta_compare_string = '%s'; |
809 | 811 | } else { |
810 | 812 | $meta_compare_string = '%s'; |
… |
… |
class WP_Meta_Query { |
813 | 815 | if ( ! empty( $where[$k] ) ) |
814 | 816 | $where[$k] .= ' AND '; |
815 | 817 | |
816 | | $where[$k] = ' (' . $where[$k] . $wpdb->prepare( "CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value ); |
| 818 | if ( 'LIKE' == substr( $meta_compare, -4 ) && is_array($meta_value) ) { |
| 819 | $like_where = ''; |
| 820 | foreach ( (array) $meta_value as $_meta_value ) { |
| 821 | $_meta_value = '%' . like_escape( $_meta_value ) . '%'; |
| 822 | $like_where .= ' OR (' . $wpdb->prepare( "CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $_meta_value ); |
| 823 | } |
| 824 | $where[$k] = substr( $like_where, 4 ); |
| 825 | } else { |
| 826 | $where[$k] = ' (' . $where[$k] . $wpdb->prepare( "CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value ); |
| 827 | } |
817 | 828 | } |
818 | 829 | |
819 | 830 | $where = array_filter( $where ); |