get_meta_sql()
За переданими параметрами створює JOIN і WHERE частин SQL запиту для метаданих, які можна використовувати в основному запиті.
Це обгортка для класу WP_Meta_Query .
Працює на основі:
WP_Meta_Query()
WP_Meta_Query()
1 раз – 0.000172 сек
(швидко) | 50000 разів – 4.48 сек
(швидко)
(швидко) | 50000 разів – 4.48 сек
(швидко)
Хуків немає.
Повертає
Массив
. Асоціативний масив з JOIN та WHERE ключами:
array( 'join' => 'JOIN SQL рядок', 'where' => 'WHERE SQL рядок' )
Використання
get_meta_sql( $meta_query, $type, $primary_table, $primary_id_column, $context );
-
$meta_query
(масив) (обов’язковий) -
Параметри запиту. Дивіться опис
WP_Meta_Query . -
$type
(рядок) (обов’язковий) -
Тип метаданих. Наприклад: ‘user’, ‘post’, ‘comment’.
В об’єкті
$wpdb повинна бути зареєстрована таблиця з назвою
$type .’meta’, наприклад, якщо ми вкажемо тут ‘foo’, то повинна існувати таблиця
$wpdb->foometa . Якщо такої таблиці немає, цей клас працювати не буде! -
$primary_table
(рядок) (обов’язковий) -
Назва основної таблиці, до якої належить таблиця метаданих. Наприклад
wp_posts ,
wp_comments ,
wp_users . -
$primary_id_column
(рядок) (обов’язковий) -
Назва ключової стовпчика основної таблиці, вказаної в
$primary_table . Для
wp_posts –
ID , для
wp_users –
ID , для
wp_comments –
comment_ID . -
$context
(об’єкт) -
Об’єкт основного запиту. Цей параметр ніде не використовується, а передається у фільтр
get_meta_sql
.
Типово: null
Приклади
#1 Демонстрація використання
$meta_query = array( array( 'key' => 'key_name', 'value' => 'значення поля', 'compare' => '=' // не обов'язково, за умовчанням '=' або 'IN' (якщо value масив) ) ); $mq_sql = get_meta_sql( $meta_query, 'post', 'wp_posts', 'ID');
$mq_sql міститиме:
Array ( [join] => INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) [where] => AND ( ( wp_postmeta.meta_key = 'key_name' AND CAST(wp_postmeta.meta_value AS CHAR) = 'значення поля' ) ) )
#2 Ще приклади
Дивіться опис WP_Meta_Query
нотатки
- Дивіться: WP_Meta_Query
список змін
З версії 3.2.0 | Введено. |
Код get_meta_sql() get meta sql WP 6.0.2
function get_meta_sql( $meta_query, $type, $primary_table, $primary_id_column, $context = null ) { $meta_query_obj = новий WP_Meta_Query( $meta_query ); return $meta_query_obj->get_sql( $type, $primary_table, $primary_id_column, $context ); }