WPDB::GET_VAR() — Получение Переменной из Базы Данных
Метод wpdb::get_var()
позволяет извлекать одно значение из базы данных WordPress. Это полезно, если вам нужно получить, например, общее количество пользователей или другую информацию, хранимую в базе данных.
Как работает WPDB::GET_VAR()
Метод выполняет SQL-запрос и возвращает запрашиваемое значение. Если результат запроса SQL содержит более одной колонки или строки, возвращается значение из указанной колонки и строки. Если параметр $query
равен null
, то возвращается значение из предыдущего запроса.
Аргументы метода
- $query (string|null): SQL-запрос. По умолчанию —
null
, в этом случае используется результат предыдущего запроса. - $x (int): Номер колонки, значение которой нужно вернуть (начиная с 0).
- $y (int): Номер строки, значение которой нужно вернуть (начиная с 0).
Возвращаемые значения
Метод возвращает строку (результат запроса) или null
в случае ошибки.
Пример использования
Чтобы использовать метод get_var
, необходимо сначала установить доступ к объекту $wpdb
, который является глобальным объектом для работы с базой данных в WordPress.
Пример 1: Получение количества пользователей
Пример получения общего числа пользователей:
global $wpdb;
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users;" );
echo 'Количество пользователей: ' . $user_count . '
';
Пример 2: Статистика блога
Вы можете использовать метод для получения различных статистических данных о блоге. Вот несколько функций:
Общее количество авторов
function get_totalauthors() {
global $wpdb;
$totalauthors = intval( $wpdb->get_var(
"
SELECT COUNT(ID) FROM $wpdb->users
LEFT JOIN $wpdb->usermeta ON $wpdb->usermeta.user_id = $wpdb->users.ID
WHERE $wpdb->users.user_activation_key = '' AND $wpdb->usermeta.meta_key = '{$wpdb->prefix}user_level' AND (meta_value+0.00) > 1
"
) );
return $totalauthors;
}
Общее количество записей
function get_totalposts(){
global $wpdb;
$totalposts = intval( $wpdb->get_var(
"SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish'"
) );
return $totalposts;
}
Общее количество страниц
function get_totalpages() {
global $wpdb;
$totalpages = intval( $wpdb->get_var(
"SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish'"
) );
return $totalpages;
}
Общее количество комментариев
function get_totalcomments() {
global $wpdb;
$totalcomments = intval( $wpdb->get_var(
"SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = '1'"
) );
return $totalcomments;
}
Общее количество авторов комментариев
function get_totalcommentposters() {
global $wpdb;
$totalcommentposters = intval($wpdb->get_var(
"SELECT COUNT(DISTINCT comment_author) FROM $wpdb->comments WHERE comment_approved = '1' AND comment_type = ''"
) );
return $totalcommentposters;
}
Общее количество ссылок
function get_totallinks() {
global $wpdb;
$totallinks = intval( $wpdb->get_var("SELECT COUNT(link_id) FROM $wpdb->links") );
return $totallinks;
}
Пример 3: Получение суммы значений определённых пользовательских полей
Если вы хотите получить сумму значений определённого пользовательского поля, вы можете использовать следующие строки кода:
// Определяем ключ пользовательского поля, которое будем считать
$meta_key = 'miles';
$allmiles = $wpdb->get_var( $wpdb->prepare(
"SELECT sum(meta_value) FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key
) );
echo 'Общее количество пользовательских полей: '. $allmiles . '
';
Заключение
Метод wpdb::get_var()
— это мощный инструмент для получения одиночных значений из базы данных WordPress. Используйте его для работы с различной статистикой и данными вашего сайта.