Как связать базу данных с wordpress сайтом?

Ссылка скопирована
1 ответ

Необходимо создать строку поиска - вводится ID товара, выводится его название и цена.
Вся информация хранится в базе данных, на сайте больше не упоминается. Может быть, есть какой-нибудь плагин, позволяющий это осуществить?

Дополнительные вопросы

Вся информация хранится в базе данных

Речь про стороннюю базу данных или о чём?

  • Refguser, в базу данных сайта добавили самостоятельно новые таблицы
  • nostr1p, для сторонних таблиц плагина точно нет
  • Refguser @Refguser Делаю ИМ и другие решения Для работы с кастомными таблицами используется класс wpdb. Ответы на вопрос 0

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Юрий Linux Ответ

    Если данные уже лежат в базе WordPress, то «связывать базу с сайтом» не нужно: WordPress уже подключён к этой базе. Нужно сделать форму поиска, принять ID товара, выполнить безопасный запрос к таблице и вывести название/цену. Если данные в сторонней таблице внутри той же базы, можно использовать глобальный объект $wpdb.

    Самый простой вариант — shortcode:

    add_shortcode('product_lookup', function () {
        ob_start();
        ?>
     
     
            <button type="submit">Найти</button>
     
        prefix . 'my_products';
     
            $row = $wpdb-&gt;get_row(
                $wpdb-&gt;prepare("SELECT name, price FROM {$table} WHERE external_id = %s LIMIT 1", $id)
            );
     
            if ($row) {
                echo '<p><strong>' . esc_html($row-&gt;name) . '</strong>: ' . esc_html($row-&gt;price) . '</p>';
            } else {
                echo '<p>Товар не найден.</p>';
            }
        }
     
        return ob_get_clean();
    });

    add_shortcode('product_lookup', function () { ob_start(); ?&gt; <button type="submit">Найти</button> prefix . 'my_products'; $row = $wpdb-&gt;get_row( $wpdb-&gt;prepare("SELECT name, price FROM {$table} WHERE external_id = %s LIMIT 1", $id) ); if ($row) { echo '<p><strong>' . esc_html($row-&gt;name) . '</strong>: ' . esc_html($row-&gt;price) . '</p>'; } else { echo '<p>Товар не найден.</p>'; } } return ob_get_clean(); });

    После этого на страницу вставляется shortcode:

    [product_lookup]

    [product_lookup]

    Важные моменты:

    • не подставляйте значение из формы прямо в SQL без $wpdb->prepare;
    • не выводите данные без esc_html;
    • если таблица большая, нужен индекс по полю ID;
    • если поиск должен работать без перезагрузки страницы, можно сделать REST endpoint и AJAX;
    • если база внешняя, потребуются отдельные доступы и подключение через wpdb или PDO.

    Плагин для такого может быть, но если задача простая — поиск по одному ID и вывод двух полей — надёжнее сделать маленький кастомный shortcode. Так меньше лишней нагрузки и проще контролировать безопасность.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно