WP_Meta_Query::get_sql()
Generates SQL clauses to be appended to a main query.
Метод класса: WP_Meta_Query{}
Хуки из метода
Возвращает
Строку[]|false
. Array containing JOIN and WHERE SQL clauses to append to the main query, or false if no table exists for the requested meta type.
Использование
$WP_Meta_Query = new WP_Meta_Query(); $WP_Meta_Query->get_sql( $type, $primary_table, $primary_id_column, $context );
- $type(строка) (обязательный)
- Type of meta. Possible values include but are not limited to 'post', 'comment', 'blog', 'term', and 'user'.
- $primary_table(строка) (обязательный)
- Database table where the object being filtered is stored (eg wp_users).
- $primary_id_column(строка) (обязательный)
- ID column for the filtered object in $primary_table.
- $context(объект)
- The main query object that corresponds to the type, for example a WP_Query, WP_User_Query, or WP_Site_Query.
По умолчанию: null
Список изменений
С версии 3.2.0 | Введена. |
Код WP_Meta_Query::get_sql() WP Meta Query::get sql WP 6.2.2
public function get_sql( $type, $primary_table, $primary_id_column, $context = null ) { $meta_table = _get_meta_table( $type ); if ( ! $meta_table ) { return false; } $this->table_aliases = array(); $this->meta_table = $meta_table; $this->meta_id_column = sanitize_key( $type . '_id' ); $this->primary_table = $primary_table; $this->primary_id_column = $primary_id_column; $sql = $this->get_sql_clauses(); /* * If any JOINs are LEFT JOINs (as in the case of NOT EXISTS), then all JOINs should * be LEFT. Otherwise posts with no metadata will be excluded from results. */ if ( false !== strpos( $sql['join'], 'LEFT JOIN' ) ) { $sql['join'] = str_replace( 'INNER JOIN', 'LEFT JOIN', $sql['join'] ); } /** * Filters the meta query's generated SQL. * * @since 3.1.0 * * @param string[] $sql Array containing the query's JOIN and WHERE clauses. * @param array $queries Array of meta queries. * @param string $type Type of meta. Possible values include but are not limited * to 'post', 'comment', 'blog', 'term', and 'user'. * @param string $primary_table Primary table. * @param string $primary_id_column Primary column ID. * @param object $context The main query object that corresponds to the type, for * example a `WP_Query`, `WP_User_Query`, or `WP_Site_Query`. */ return apply_filters_ref_array( 'get_meta_sql', array( $sql, $this->queries, $type, $primary_table, $primary_id_column, $context ) ); }