クラス WP_Date_Query::get_sql_for_subquery()
2014/12/16
WP_Date_Query::get_sql_for_subquery()
定義ファイル :/blog/wp-includes/date.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | protected function get_sql_for_subquery( $query ) { global $wpdb; // The sub-parts of a $where part $where_parts = array(); $column = ( ! empty( $query['column'] ) ) ? esc_sql( $query['column'] ) : $this->column; $column = $this->validate_column( $column ); $compare = $this->get_compare( $query ); $inclusive = ! empty( $query['inclusive'] ); // Assign greater- and less-than values. $lt = '<'; $gt = '>'; if ( $inclusive ) { $lt .= '='; $gt .= '='; } // Range queries if ( ! empty( $query['after'] ) ) $where_parts[] = $wpdb->prepare( "$column $gt %s", $this->build_mysql_datetime( $query['after'], ! $inclusive ) ); if ( ! empty( $query['before'] ) ) $where_parts[] = $wpdb->prepare( "$column $lt %s", $this->build_mysql_datetime( $query['before'], $inclusive ) ); // Specific value queries if ( isset( $query['year'] ) && $value = $this->build_value( $compare, $query['year'] ) ) $where_parts[] = "YEAR( $column ) $compare $value"; if ( isset( $query['month'] ) && $value = $this->build_value( $compare, $query['month'] ) ) $where_parts[] = "MONTH( $column ) $compare $value"; else if ( isset( $query['monthnum'] ) && $value = $this->build_value( $compare, $query['monthnum'] ) ) $where_parts[] = "MONTH( $column ) $compare $value"; if ( isset( $query['week'] ) && false !== ( $value = $this->build_value( $compare, $query['week'] ) ) ) $where_parts[] = _wp_mysql_week( $column ) . " $compare $value"; else if ( isset( $query['w'] ) && false !== ( $value = $this->build_value( $compare, $query['w'] ) ) ) $where_parts[] = _wp_mysql_week( $column ) . " $compare $value"; if ( isset( $query['dayofyear'] ) && $value = $this->build_value( $compare, $query['dayofyear'] ) ) $where_parts[] = "DAYOFYEAR( $column ) $compare $value"; if ( isset( $query['day'] ) && $value = $this->build_value( $compare, $query['day'] ) ) $where_parts[] = "DAYOFMONTH( $column ) $compare $value"; if ( isset( $query['dayofweek'] ) && $value = $this->build_value( $compare, $query['dayofweek'] ) ) $where_parts[] = "DAYOFWEEK( $column ) $compare $value"; if ( isset( $query['hour'] ) || isset( $query['minute'] ) || isset( $query['second'] ) ) { // Avoid notices foreach ( array( 'hour', 'minute', 'second' ) as $unit ) { if ( ! isset( $query[$unit] ) ) { $query[$unit] = null; } } if ( $time_query = $this->build_time_query( $column, $compare, $query['hour'], $query['minute'], $query['second'] ) ) { $where_parts[] = $time_query; } } return $where_parts; } |