Changeset 2028753
- Timestamp:
- 02/11/2019 06:45:38 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sermon-manager-for-wordpress/trunk/includes/class-sm-shortcodes.php
r2028748 r2028753 873 873 case 'preached': 874 874 case 'date_preached': 875 case '': 875 876 $args['orderby'] = 'meta_value_num'; 876 877 877 $query_args['meta_key'] = 'sermon_date'; 878 $query_args['meta_value_num'] = time(); 879 $query_args['meta_compare'] = '<='; 878 $query_args['meta_query'] = array( 879 array( 880 'key' => 'sermon_date', 881 'value' => time(), 882 'type' => 'numeric', 883 'compare' => '<=', 884 ), 885 ); 880 886 break; 881 887 case 'published': … … 902 908 } 903 909 904 $query_args['meta_compare'] = 'BETWEEN'; 910 // Reset the query. 911 $query_args['meta_query'] = array(); 905 912 906 913 switch ( $date_arg ) { … … 908 915 $year = $args['year']; 909 916 910 $query_args['meta_value_num'] = array( 911 strtotime( $year . '-01-01' ), 912 strtotime( $year . '-12-31' ), 917 $query_args['meta_query'][] = array( 918 'key' => 'sermon_date', 919 'value' => array( 920 strtotime( $year . '-01-01' ), 921 strtotime( $year . '-12-31' ), 922 ), 923 'compare' => 'BETWEEN', 913 924 ); 914 925 break; … … 917 928 $month = intval( $args['month'] ) ?: date( 'm' ); 918 929 919 $query_args['meta_value_num'] = array( 920 strtotime( $year . '-' . $args['month'] . '-' . '01' ), 921 strtotime( $year . '-' . $month . '-' . cal_days_in_month( CAL_GREGORIAN, $month, $year ) ), 930 $query_args['meta_query'][] = array( 931 'key' => 'sermon_date', 932 'value' => array( 933 strtotime( $year . '-' . $args['month'] . '-' . '01' ), 934 strtotime( $year . '-' . $month . '-' . cal_days_in_month( CAL_GREGORIAN, $month, $year ) ), 935 ), 936 'compare' => 'BETWEEN', 922 937 ); 923 938 break; … … 928 943 // Add before and after parameters. 929 944 if ( 'meta_value_num' === $query_args['orderby'] && ( $args['before'] || $args['after'] ) ) { 930 $before = null; 931 $after = null; 945 if ( ! isset( $query_args['meta_query'] ) ) { 946 $query_args['meta_query'] = array(); 947 } 932 948 933 949 if ( $args['before'] ) { 934 950 $before = strtotime( $args['before'] ); 951 952 $query_args['meta_query'][] = array( 953 'key' => 'sermon_date', 954 'value' => $before, 955 'compare' => '<=', 956 ); 935 957 } 936 958 937 959 if ( $args['after'] ) { 938 960 $after = strtotime( $args['after'] ); 939 } 940 941 if ( $before && $after ) {942 $query_args['meta_compare'] = 'BETWEEN';943 $query_args['meta_value_num'] = array( $after, $before );944 } elseif ( $after ) {945 $query_args['meta_compare'] = '>=';946 $query_args['meta_value_num'] = $after;947 } elseif ( $before ) { 948 $query_args['meta_compare'] = '<=';949 $query_args['meta_value_num'] = $before;950 }961 962 $query_args['meta_query'][] = array( 963 'key' => 'sermon_date', 964 'value' => $after, 965 'compare' => '=>', 966 ); 967 } 968 } 969 970 // Use all meta queries. 971 if ( isset( $query_args['meta_query'] ) && count( $query_args['meta_query'] ) > 1 ) { 972 $query_args['meta_query']['relation'] = 'AND'; 951 973 } 952 974
Note: See TracChangeset
for help on using the changeset viewer.