Skip to content
03.06.2023
  • Технология
  • Новости
  • В мире

Технологии

Primary Menu
  • Технология
  • Новости
  • В мире
  • Home
  • 2023
  • Апрель
  • 4
  • Технология

Как выполнять SQL запросы WordPress с помощью класса wpdb

admin 04.04.2023 1 min read

web-design-website-coding-concept

11 февраля 2020 WordPress MySQL

Взаимодействие с базой данных в CMS WordPress осуществляется с помощью класса wpdb. Класс позволяет осуществлять различные операции с базой данных, такие как добавление, удаление, обновление и вывод данных.

wpdb-e1581423613993-1024x709-6116474

Обращаться к базе данных необходимо через глобальную переменную $wpdb. Таким образом перед кодом переменная обязательно должна быть глобализированна:

global $wpdb;

После этого, с помощью готовых методов класса, можно управлять любыми таблицами в текущей базе данных WordPress, даже теми, которые вы создали вручную. Точно так же как если бы вы использовали для подключения PHP-функцию mysql_connect().

Например, можно выбрать все поля из произвольной таблицы mytable таким образом:

$mytable = $wpdb->get_results( "SELECT * FROM mytable" );

Основные методы класса wpdb

query — произвольный запрос к Базе Данных WordPress
get_var — получение определенной ячейки таблицы
get_row — выбор строки таблицы
get_col — выбор столбца таблицы
get_results — выбор нескольких строк таблицы
insert — вставка новой записи (строки) в таблицу
update — обновление записи (строки) в таблице
replace — замена строки
delete — удаление строки из таблицы
prepare — защита запроса от SQL инъекций
esc_like — очистка LIKE строки
show/hide/print_error — показать или спрятать ошибки SQL
get_col_info — получить информацию о колонке
flush — сброс кэша

Примеры использования

Вывод данных

Вывод количества пользователей:

$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users;" );
echo '
Количество пользователей равно: ' . $user_count . '';

Вывести количество страниц:

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;
}

Вывести записи с доп.полем color:

$meta_key1 = 'Color';
$meta_key2 = 'Display_Order';

$postids = $wpdb->get_col($wpdb->prepare("
SELECT      key1.post_id
FROM        $wpdb->postmeta key1
INNER JOIN  $wpdb->postmeta key2
                        on key2.post_id = key1.post_id
                        and key2.meta_key = %s
WHERE       key1.meta_key = %s
ORDER BY    key2.meta_value+(0) ASC",
                 $meta_key2,$meta_key1)); 

if ($postids) {
  echo 'List of '. $meta_key1  . ' posts, sorted by ' . $meta_key2 ;
  foreach ($postids as $id) {
        $post=get_post(intval($id));
        setup_postdata($post);?>

Continue Reading

Previous: Как убрать поле сайт и e-mail в комментариях WordPress
Next: Как использовать фильтры CSS

Related Stories

Захват изображения с камеры с помощью HTML5 mediacapture-2460556
1 min read
  • Технология

Захват изображения с камеры с помощью HTML5

29.04.2023
Освоение аналитики: получение максимальной отдачи от аналитических данных в GA4 analytics-intelligence-step-1-sign-in
1 min read
  • Технология

Освоение аналитики: получение максимальной отдачи от аналитических данных в GA4

26.04.2023
Что такое ошибка DNS_PROBE_FINISHED_NXDOMAIN? Полное руководство mastering-analytics-intelligence-in-ga4-hero-image-730x548-2691257
1 min read
  • Технология

Что такое ошибка DNS_PROBE_FINISHED_NXDOMAIN? Полное руководство

26.04.2023

You may have missed

Захват изображения с камеры с помощью HTML5 mediacapture-2460556
1 min read
  • Технология

Захват изображения с камеры с помощью HTML5

29.04.2023
Освоение аналитики: получение максимальной отдачи от аналитических данных в GA4 analytics-intelligence-step-1-sign-in
1 min read
  • Технология

Освоение аналитики: получение максимальной отдачи от аналитических данных в GA4

26.04.2023
Что такое ошибка DNS_PROBE_FINISHED_NXDOMAIN? Полное руководство mastering-analytics-intelligence-in-ga4-hero-image-730x548-2691257
1 min read
  • Технология

Что такое ошибка DNS_PROBE_FINISHED_NXDOMAIN? Полное руководство

26.04.2023
Как создавать отчеты по аналитике веб-сайта в Looker Studio (шаг за шагом) customize-the-report
1 min read
  • Технология

Как создавать отчеты по аналитике веб-сайта в Looker Studio (шаг за шагом)

26.04.2023
  • Технология
  • Новости
  • В мире
  • Технология
  • Новости
  • В мире
Copyright © All rights reserved. | MoreNews by AF themes.