Отображение данных из phpMyAdmin с помощью WordPress

Вопрос или проблема

Я импортировал свой сайт на WordPress и сталкиваюсь с большой проблемой: как сделать SQL-запрос, чтобы отображать данные на моих страницах с помощью WordPress? Например, у меня есть продукт, цена, описание, которые необходимо отобразить на сайте. Как я могу это сделать?

Если вы пытаетесь выполнить запрос к той же базе данных, в которой установлен ваш WordPress, то есть отличный способ легко выполнить SQL-запрос. У WordPress есть класс абстракции доступа к базе данных под названием wpdb, который позволяет выполнять сырые запросы MySQL без каких-либо проблем.

Вы можете начать использовать его одним из двух способов, приведенных ниже:

// 1-й способ - обявление $wpdb как глобальной переменной и использование ее для выполнения SQL-запроса, который возвращает объект PHP
global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );

или

// 2-й способ - использование суперглобальной переменной $GLOBALS. Не требует ключевого слова global (но может не быть лучшей практикой)
$results = $GLOBALS['wpdb']->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );

Изучите документацию здесь и начните!

Если это база данных третьих сторон, вы можете сначала подключиться к ней, а затем получить результаты.

mydb = new wpdb('username','password','database','localhost');
$rows = $mydb->get_results("select Name from my_table");

Если это локальная база данных, вы также можете использовать глобальный объект wpdb.

global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );

Для справки.
https://developer.wordpress.org/reference/classes/wpdb/

Вы можете запустить приведенный выше код в файле functions.php.

В зависимости от ваших требований вы можете привязать его к какому-либо действию или добавить его как шорткод.

например.

add_shortcode( 'dbresults', 'wp_dbresutls' );
function wp_dbresutls() {
 // ваш код для базы данных
 }

Ответ или решение

Для отображения данных из базы данных с помощью WordPress после импорта вашего сайта, вы можете использовать класс доступа к базе данных, предоставленный WordPress, который называется wpdb. Этот класс позволяет выполнять SQL-запросы, и вы можете работать как с вашей текущей базой данных WordPress, так и с другими базами данных.

Использование класса wpdb

Если вы хотите выполнить запрос к той же базе данных, в которой установлен WordPress, выполните следующие шаги:

  1. Объявите глобальную переменную $wpdb:
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}your_table_name", OBJECT);

В приведенном выше коде replace your_table_name на название вашей таблицы, из которой вы хотите извлечь данные. Использование {$wpdb->prefix} гарантирует, что вы получите правильный префикс таблиц, который может варьироваться в зависимости от конфигурации вашего сайта.

  1. Использование GLOBALS:

Вы также можете получить доступ к классу wpdb, используя суперглобальный массив:

$results = $GLOBALS['wpdb']->get_results("SELECT * FROM {$GLOBALS['wpdb']->prefix}your_table_name", OBJECT);

Работа с внешней базой данных

Если вы хотите выполнить запрос к третьей стороне базы данных, вы сначала должны установить соединение:

$mydb = new wpdb('username', 'password', 'database', 'localhost');
$rows = $mydb->get_results("SELECT name, price, description FROM your_table_name");

Замените 'username', 'password', 'database' и 'your_table_name' на ваши данные для подключения.

Отображение данных на страницах WordPress

Чтобы отобразить данные на страницах WordPress, вы можете создать шорткод. Это позволит вам вставлять данные в контент страниц или записей.

Вот пример кода для создания шорткода:

add_shortcode('dbresults', 'wp_dbresults');

function wp_dbresults() {
    global $wpdb;
    $results = $wpdb->get_results("SELECT product, price, description FROM {$wpdb->prefix}your_table_name", OBJECT);

    if (empty($results)) {
        return "Нет данных для отображения.";
    }

    $output = '<ul>';
    foreach ($results as $row) {
        $output .= '<li>';
        $output .= '<strong>Продукт:</strong> ' . esc_html($row->product) . '<br>';
        $output .= '<strong>Цена:</strong> ' . esc_html($row->price) . '<br>';
        $output .= '<strong>Описание:</strong> ' . esc_html($row->description);
        $output .= '</li>';
    }
    $output .= '</ul>';

    return $output;
}

Добавьте этот код в файл functions.php вашей темы. После этого вы сможете использовать шорткод [dbresults] в любом редакторе постов WordPress для отображения данных.

Заключение

Теперь у вас есть все необходимые шаги для выполнения SQL-запросов в WordPress и отображения полученных данных на веб-сайте. Вы можете адаптировать предложенные примеры к своим нуждам. Для получения дополнительной информации о классе wpdb ознакомьтесь с документацией по wpdb.

Оцените материал
Добавить комментарий

Капча загружается...