WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как подключить другую базу данных в WordPress

1 437

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

Но все же, если кто-то ищет решение по подключению нескольких баз данных, то для этого есть один взлом. Используя этот прием, вы можете использовать методы класса wpdb для получения записей из другой базы данных. Этот взлом не позволит вам использовать основные методы, предоставляемые WordPress, для вашей второй базы данных. Такие функции, как get_option(), update_option (), wp_insert_post (), get_post_meta (), не будут доступны для другой вашей базы данных.

В этом случае пользователь может получать данные из опций, размещать таблицы с помощью SQL-запросов с методами класса wpdb. Это методы get_var (), get_row (), get_col (), get_results () и т.д.

Подключить другую базу данных в WordPress

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

Для начала у вас должны быть учетные данные внешней базы данных.

Как уже говорилось, необходимо создать экземпляр класса wpdb. Этот экземпляр должен быть доступен во всем приложении WordPress. Для этого добавьте в functions.phpфайл приведенный ниже код .

function connect_another_db() {
    global $seconddb;
    $seconddb = new wpdb(USERNAME, PASSWORD, DATABASE_NAME, HOSTNAME);
}
add_action('init', 'connect_another_db');

Обязательно замените все заполнители фактическими значениями. После добавления вышеуказанного кода вы подключаетесь к другой базе данных. Вы можете использовать этот второй экземпляр, как показано ниже:

global $seconddb;
$user_count = $seconddb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
echo "<p>User count is {$user_count}</p>";

Помните, что префикс вашей таблицы другой базы данных должен совпадать с префиксом исходной базы данных. Если префикс вашей таблицы отличается, вам необходимо указать префикс явно, как показано ниже:

global $seconddb;
$prefix = 'wp2_'; // here 'wp2' is the table prefix of second database
$user_count = $seconddb->get_var( "SELECT COUNT(*) FROM $prefix"."users" );
echo "<p>User count is {$user_count}</p>";

Используя описанные выше хаки, вы можете подключить другую базу данных и получать из нее записи на своем веб-сайте WordPress. Но я рекомендую не использовать несколько баз данных для вашего сайта WordPress. Постарайтесь достичь своей цели только из единой базы данных.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее